在我的iOS应用程序中,我不想使用OpenAL播放声音。我有AudioManager类,负责声音管理(单例)。所有声源和缓冲区在创建时初始化(在第一次instance
调用时)。
所以我需要播放声音 - 停止先前的声音,清除旧的缓冲区(必要的源),附加新缓冲区,设置音高和放大器。获得并最终播放声音。所有这些操作都在playSound:(AMSound)sound
方法中(AMSound
是一个简单的枚举)。
对于UI效果,我从主线程调用此方法。但我的应用程序有很多背景工作,有时还伴有声音效果。
我可以直接从后台线程调用playSound:
,还是只在主线程上调用它?
那么同步声音呢:一个是从主线程创建的,另一个是从背景创建的?
答案 0 :(得分:6)
无论你在哪个线程上调用playsound
,openAL实际上都会在自己的线程上播放它。对于同步声音,它取决于你想要如何混合它们,无论如何,openAL将始终管理自己的游戏线程,因此从线程角度来看,你调用的地方并不重要playsound