1

我正在开发一个项目,其中一些音频数据需要在 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?

非常感谢!!

4

0 回答 0