AudioQueueStart失败

我制作了一个流媒体音乐播放器,它在前台运行良好。 但在后台iOS4中,它不会自动播放下一首歌曲。 (遥控器工作)原因是AudioQueueStart return -12985

我已经检查过音频会话。 它很好。 我开始播放音乐时使用AudioQueueStart 。 你怎么能删除AudioQueueStart

- (void)play
{
    [self setupAudioQueueBuffers];    // calcluate the size to use for each audio queue buffer, and calculate the // number of packets to read into each buffer
    OSStatus status = AudioQueueStart(self.queueObject, NULL); 
}

我在网上阅读了有关AudioQueueStart失败主题的答案。

有一件事要检查,首先AudioSession是活动的。 在我的情况下,我之前已经将会话设置为在开始新歌曲之前的歌曲更改之间不活动: AudioSessionSetActive(false);

一旦我删除了这个AudioQueueStart在后台工作得很好。


根据我的经验,发生-12985消息是因为当您尝试在您的应用中开始播放时,另一个应用已经有一个音频会话处于活动状态。 选项是1)指示用户关闭另一个应用程序,或2)设置混合模式(请参阅kAudioSessionProperty_OverrideCategoryMixWithOthers)。

混合模式的缺点在于,如果您依赖锁定屏幕艺术或遥控器,它们将无法使用混合模式设置。


我一周前也遇到过这样的问题。 我花了两天的时间找到解决方案,并找到了解决方案。 可能是这个链接将有所帮助(这是官方答案):http://developer.apple.com/library/ios/#qa/qa1668/_index.html

确保您从applicationDidEnterBackground任务处理程序激活会话。 现在我的应用程序可以在后台播放声音。


看到这个。

您可能需要包含以下内容:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

接近底部的是重申该线的重要性。 由于在三个主要音频音频指南(AVFoundation,AudioSession或AudioQueue)中没有提及,所以很容易被忽略。

链接地址: http://www.djcxy.com/p/79021.html

上一篇: AudioQueueStart fail

下一篇: Vendor Asset Pipeline