gpt4 book ai didi

multithreading - 从后台线程播放 OpenAL 声音

转载 作者:可可西里 更新时间:2023-11-01 05:32:06 32 4
gpt4 key购买 nike

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

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

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

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

最佳答案

无论您在哪个线程上调用playsound,openAL 实际上都会在它自己的线程上播放它。至于同步声音,这取决于你想如何混合它们,无论如何,openAL 将始终管理自己的播放线程,所以从线程的角度来看,你在哪里调用 playsound

关于multithreading - 从后台线程播放 OpenAL 声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255734/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com