【问题标题】:An audio stream with notification on positions带有位置通知的音频流
【发布时间】:2012-04-18 19:49:39
【问题描述】:

我正在开发一个应用程序,它将根据输入序列生成音频流 (PCM)。此声音(音频流)将从头到尾播放。我想要的是在播放生成的声音时有一些关于输入序列中位置的通知。

例子:

我的输入是“ABC”,生成的声音对应于字母 A 3 秒,字母 B 2 秒和字母 C 2 秒 ---> 总共 7 秒 (3+2+2) .该通知意味着在 3 秒后发送有关“A 传输”的事件,2 秒后发送有关“B 传输”的事件,再过 2 秒'C 传输' 事件已发送。

有没有一种经典的方法来做到这一点,或者这对每个问题都是特定的? (我使用 C/C++ 和 portaudio 框架)

目前,我这样做的唯一方法是在播放器进入流时动态生成每个字母的音频数据。

注意:我知道如何在线程之间发送异步事件和线程间通信。我只是对是否有 classic 这样做的方式感兴趣。

谢谢

【问题讨论】:

    标签: c++ c audio portaudio


    【解决方案1】:

    Portaudio 没有在通过音频设备播放特定事件或特定时间过去时通知您的机制。如果您需要知道特定数量的数据何时通过设备,您需要使用Pa_GetStreamTime 轮询设备。

    通常,尤其是在低延迟设置下,知道数据已写入并将被播放就足够了。在这种情况下,标准(无锁)线程间通信就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多