Android中的Unity3D音频延迟

时间:2014-07-05 09:35:42

标签: android audio unity3d delay

我已经在互联网上阅读了有关此问题的所有帖子并尝试了所有建议。虽然看起来这个问题(播放音频源的延迟时间为0.2-0.5秒)是由设备上的硬件或操作系统引起的,但我发现有些应用程序几乎无法延迟播放声音(例如Perfect Piano)。谁知道如何解决它?

2 个答案:

答案 0 :(得分:2)

您可以做的是项目设置>音频> DSP缓冲区大小>将其设置为最佳延迟(小缓冲区大小)。截至今天,通过这种设置,它在Windows上构建了一个闪烁的声音,而在macOS,Android,iOS上完全没问题。您可能希望在Windows上具有更大的缓冲区大小。 (以更多延迟为代价)

如果“最佳延迟”设置仍然不足以让你去本地绝对是要走的路。我刚刚制作了Native Audio资产商店插件,可以从一个中央界面本地调用iOS和Android最快的本地方式。 https://www.assetstore.unity3d.com/#!/content/107067

在本地播放音频有多种方式,这是我的选择:

  • 在iOS上,它使用OpenAL。它比AVAudioPlayer,AudioToolbox和SystemSound更快。
  • 在Android上它使用AudioTrack,我确认它比SoundPool更快,与NDK的C ++端OpneSL ES没有任何有意义的区别。

我在这里汇编了我的所有发现:http://exceed7.com/native-audio

PS。我之前使用过FMOD for Unity。我能做的最好的设置。除了设置最佳文件格式外,还需要编辑FMOD Unity的源代码以使用非常少的缓冲区大小。有了这个,延迟几乎等于Unity的“最佳延迟”(由于缓冲区尺寸较小,声音也会破裂)

答案 1 :(得分:0)

我编写了一个使用原生Android音频系统进行低延迟播放的资产。

检查出来。 :)

Asset Store: Android Native Audio