【问题标题】:Playing OpenAL sounds from background thread从后台线程播放 OpenAL 声音
【发布时间】:2011-06-06 17:28:15
【问题描述】:

在我的 iOS 应用程序中,我不想使用 OpenAL 播放声音。我有 AudioManager 类,负责声音管理(单例)。所有声源和缓冲区在创建时都会初始化(在第一次 instance 调用中)。

所以要播放声音,我只需要停止以前的声音,清除旧缓冲区(必要的源),附加新缓冲区,设置音高和增益,最后播放声音。所有这些操作都在playSound:(AMSound)sound 方法中(AMSound 是一个简单的枚举)。

对于 UI 效果,我从主线程调用此方法。但是我的应用有很多后台工作,有时还伴随着音效。

我可以直接从后台线程调用playSound: 还是应该只在主线程上调用? 那么同时发出的声音呢:一个是从主线程创建的,另一个是从后台创建的?

【问题讨论】:

    标签: multithreading ios audio openal


    【解决方案1】:

    不管你在哪个线程上调用playsound,openAL 实际上都会在它自己的线程上播放它。至于同时发出的声音,就看你想怎么混合了

    【讨论】:

    • 另外,与例如相反OpenGL,您实际上可以从任意线程播放声音,因为上下文是每个进程的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多