等到播放完成

Posted

技术标签:

【中文标题】等到播放完成【英文标题】:Wait until playback has completed 【发布时间】:2012-11-01 07:05:23 【问题描述】:

我使用 PortAudio 作为语音合成(文本到语音)引擎的前端,我想提供一个同步语音功能,等待播放完成。

似乎所有处理此问题的 PortAudio 函数只等到底层 API 完成使用音频数据,而不是。

PortAudio 可以做到这一点吗?如果没有,是否有任何可以支持此功能的 PortAudio(必须包含 C 接口)的良好跨平台替代品?

【问题讨论】:

【参考方案1】:

我不确定 streamFinished 回调是否如此处所述:

http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aa11e7b06b2cde8621551f5d527965838

是你想要的。它可能会遇到同样的问题,但我认为它会起作用。

另外两种可能性是:

使用较低的延迟设置。 使用硬件计时。此信息可通过GetStreamTime() 等电话获得。例如: 获取当前时间 将 x 秒的音频推送到硬件 等待硬件时钟显示开始时间加上 x 秒

您可能也对此文档感兴趣:

http://www.rossbencina.com/static/writings/portaudio_sync_acmc2003.pdf

恐怕我不知道还有其他 API 可以更好地支持这类事情。

【讨论】:

以上是关于等到播放完成的主要内容,如果未能解决你的问题,请参考以下文章

Mp3 播放类播放列表中的歌曲,但要等到一首完成后再继续

流媒体整理

等待每个 playStream() 完成,然后再开始读取下一个

为啥我的 segue 不等到完成处理程序完成?

iOS中 流媒体播放和下载 韩俊强的博客

等到文件复制/上传完成