1.控制开始停止
//播放音效
audioSource.Play();
//延迟播放 填写的是秒数
audioSource.PlayDelayed(5);
//停止音效
audioSource.Stop();
//暂停
audioSource.Pause();
//停止暂停 和暂停后 Play效果是一样的 都会继续播放现在的音效
audioSource.UnPause();
//如果希望某一个音效播放完毕后 想要做什么事情
//那就可以在Update生命周期函数中 不停的去检测 它的 该属性
//如果是false就代表播放完毕了
audioSource.isPlaying
2.动态控制音效播放
//1.直接在要播放音效的对象上挂载脚本 控制播放
//2.实例化挂载了音效源脚本的对象
Instantiate(obj);
//3.用一个AudioSource来控制播放不同的音效
AudioSource aus = this.gameObject.AddComponent<AudioSource>();
aus.clip = clip;
aus.Play();
//一个GameObject可以挂载多个 音效源脚本AudioSource
//使用时要注意 如果要挂载多个 那一定要自己管理他们 控制他们的播放 停止 不然 我们没有办法准确的获取
3.麦克风
//获取设备麦克风信息
string[] strs = Microphone.devices;
//开始录制
//参数一:设备名 传空使用默认设备
//参数二:超过录制长度后 是否重头录制
//参数三:录制时长
//参数四:采样率
if( Input.GetKeyDown(KeyCode.Space) )
{
clip = Microphone.Start(null, false, 10, 44100);
}
//结束录制
if( Input.GetKeyUp(KeyCode.Space) )
{
Microphone.End(null);
//第一次去获取 没有才添加
AudioSource s = this.GetComponent<AudioSource>();
if (s == null)
s = this.gameObject.AddComponent<AudioSource>();
s.clip = clip;
s.Play();
//规则 用于存储数组数据的长度 是用 声道数 * 剪辑长度
float[] f = new float[clip.channels * clip.samples];
clip.GetData(f, 0);
print(f.Length);
}