如何将AudioQueuePause与AudioQueueGetCurrentTime结合使用以恢复iPhone SDK中的音频播放?

时间:2011-04-21 20:13:21

标签: iphone audio streaming core-audio

我的iPhone应用程序播放来自互联网的流媒体音频。

我需要将AudioQueuePause与AudioQueueGetCurrentTime结合起来暂停音频流,然后在用户再次按下播放时恢复播放。

如何使用AudioQueueGetCurrentTime实现AudioQueuePause,以暂停和恢复音频播放?

1 个答案:

答案 0 :(得分:0)

实际上我不需要将AudioQueuePause与AudioQueueGetCurrentTime结合起来暂停音频流,然后在请求时恢复它。

首先我创建了两个按钮(我的PlayerViewController.m中的IBActions),一个用于暂停,另一个用于恢复音频,除了我已经用于启动/停止的按钮。启动时必须首先缓冲,然后播放音频。如果我再次按下按钮,它将停止,摆脱当前的WiFi或3G连接。

然后我只需要在 - (void)pauseAudioStreaming方法和 AudioQueueStart(inAudioQueue,NULL)中使用 AudioQueuePause(inAudioQueue); ;在 - (void)恢复方法中。 NULL意味着音频将在我暂停的确切位置开始(然后我得出结论,没有必要使用AudioQueueGetCurrentTime获取当前时间),如下所示:

- (void)pauseAudioStreaming
{
    AudioQueuePause(inAudioQueue);   
}

- (void)resume
{
    AudioQueueStart(inAudioQueue, NULL); 
}

现在它不需要从音频的开头再次缓冲,但它会在请求时暂停并恢复得非常快。