我正在开发一个项目,其中一些音频数据需要在Unity 4中播放。输入数据的采样率是24000 Hz(24kHz),通常系统中扬声器的默认采样率是44100(44.1kHz) 。在Windows中,我可以使用AudioSettings.outputSampleRate = 24000;毫无问题地更改此设备采样率。但我发现它在Mac OS中是不可能的。即使在我更改之后,如果我打印该值,我仍然会得到44100.有时我甚至收到错误消息:
尝试从未存储在磁盘上的磁盘重新加载资产
所以我怀疑Mac OS禁止用户在用户的应用程序中更改此值。
根据此处的说明:http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.Play.html
我尝试在AudioSource.Play中设置延迟值来解决它。由于44100/24000 * 24000 = 44100,我所做的是:
myClip = AudioClip.Create("MySinoid", 24000, 1, 24000, false, false);
audio.loop = true;
audio.clip = myClip;
audio.Play(44100);
但没有运气,几乎一半的音频数据都没有播放。 有人遇到了和我一样的问题吗?你的解决方案是什么? OnAudioFilterRead会以哪种方式播放?或FixedUpdate + SetData?
非常感谢!!