C 使用libpulse播放多个流

C 使用libpulse播放多个流,c,audio,pulseaudio,C,Audio,Pulseaudio,如何使用libpulse播放多个音频流。我知道可以对多个流求和并使用libaudio播放,但是可以在libpulseapi上编写多个流并让PulseAudio进行求和吗?通过实现这一点,我得到了解决方案。 同步多个播放流 PulseAudio允许应用程序完全同步多个播放 连接到同一输出设备的流。这意味着 流将始终同步地逐样本回放。如果 诸如pa_stream_cork()之类的流操作是在 同步流,它们在其他流上同时发布。到 将一个流同步到另一个流,只需将“主”流作为最后一个流传递 pa_str

如何使用
libpulse
播放多个
音频流。我知道可以对多个流求和并使用
libaudio
播放,但是可以在
libpulse
api上编写多个流并让PulseAudio进行求和吗?

通过实现这一点,我得到了解决方案。

同步多个播放流

PulseAudio允许应用程序完全同步多个播放 连接到同一输出设备的流。这意味着 流将始终同步地逐样本回放。如果 诸如pa_stream_cork()之类的流操作是在 同步流,它们在其他流上同时发布。到 将一个流同步到另一个流,只需将“主”流作为最后一个流传递 pa_stream_connect_playback()的参数。确保 新创建的流不会立即开始播放,请确保 通过PA_流\u开始\u软木塞-在创建所有流后 –只需一次调用pa_stream_cork(),即可将它们全部解锁 主流。以确保特定流不会停止运行 当服务器端缓冲区运行不足而另一个服务器端缓冲区 同步流继续播放,因此会出现偏差,您需要 连接时传递0的“prebuf”缓冲区属性