如何结合 AudioQueuePause 和 AudioQueueGetCurrentTime 在 iPhone SDK 中恢复音频播放?
Posted
技术标签:
【中文标题】如何结合 AudioQueuePause 和 AudioQueueGetCurrentTime 在 iPhone SDK 中恢复音频播放?【英文标题】:How to combine AudioQueuePause with AudioQueueGetCurrentTime to resume audio Playback in iPhone SDK? 【发布时间】:2011-04-21 20:13:21 【问题描述】:我的 iPhone 应用播放来自互联网的流式音频。
我需要结合 AudioQueuePause 和 AudioQueueGetCurrentTime 来暂停音频流,然后在用户再次按下播放时恢复播放。
如何使用 AudioQueueGetCurrentTime 实现 AudioQueuePause 以暂停和恢复音频播放?
【问题讨论】:
【参考方案1】:其实我不需要将 AudioQueuePause 和 AudioQueueGetCurrentTime 结合起来来暂停音频流,然后在请求时恢复它。
首先,我创建了两个按钮(我的 PlayerViewController.m 中的 IBActions),一个用于暂停,另一个用于恢复音频,此外还有一个用于开始/停止的按钮。启动时,它必须先缓冲,然后才能播放音频。如果我再次按下按钮,它将停止,摆脱当前的 WiFi 或 3G 连接。
然后我只需要在 -(void)pauseAudiostreaming 方法中使用 AudioQueuePause(inAudioQueue); 和 AudioQueueStart(inAudioQueue, NULL);在 -(void)resume 方法中。 NULL 意味着音频将在我暂停它的确切点尽快开始(然后我得出结论,没有必要使用 AudioQueueGetCurrentTime 获取当前时间),如下所示:
- (void)pauseAudioStreaming
AudioQueuePause(inAudioQueue);
- (void)resume
AudioQueueStart(inAudioQueue, NULL);
现在它不需要从音频的开头再次缓冲,但它会在请求时非常快速地暂停和恢复。
【讨论】:
以上是关于如何结合 AudioQueuePause 和 AudioQueueGetCurrentTime 在 iPhone SDK 中恢复音频播放?的主要内容,如果未能解决你的问题,请参考以下文章
Application::and() 与 With Server::post 结合使用