c++ - 启动后如何结束libsoundio流?

标签 c++ audio

我已经在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/

相关文章:

c++ - 当我用 0 初始化 std::string 时发生了什么?

c++ - 最快的算法计算数组中 3 个长度 AP 的数量

C++ : How to reduce conditional statements

c++ - Makefile不对文件使用隐式规则

javascript - 如何在给定hh:mm:ss的<audio>文件中设置currentTime?

windows - IMFMediaSink无法在具有AMD GPU的PC上添加第二个音频输出流

cocoa - 如何检查 AudioQueue 中的当前时间和持续时间

audio - 如何对重新采样的音频数据进行双三次(或其他非线性)插值?

java - 如何使用Java从声卡录制音频?

c++ - UDP 无法绑定(bind)套接字