我已经在libsound.io上构建并运行了该示例。
我不知道SoundIoOutStream* outstream
的生命周期。
根据示例,soundio_outstream_create(device)
返回该指针。然后soundio_outstream_open(outstream)
和soundio_outstream_start(outstream)
被调用。此时,回调开始被调用。
有什么方法可以阻止回调被调用吗?
有什么声音功能可以“关闭”或“停止” outstream
吗?
(我可以根据回答来编辑或添加到我的问题中,现在我有太多未知数,无法提出正确的问题。)
最佳答案
重要的是:我们不会为资源中的每个声音片段创建流,而是在每次要播放声音片段时创建流。
播放声音片段后,soundio_outstream_destroy(outstream);
阻止回调被调用。诀窍是我们无法在write_callback
中调用此函数,因此我们应该在回调线程和应用程序的线程之间实现某种消息传递,以销毁outstream
。
我的答案在这里有更多详细信息:Play multiple streams with soundio
关于c++ - 启动后如何结束libsoundio流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64398420/