在后台播放一个 AVAudioPlayer 实例

Posted

技术标签:

【中文标题】在后台播放一个 AVAudioPlayer 实例【英文标题】:Play one instance of AVAudioPlayer in the background 【发布时间】:2011-09-30 11:36:54 【问题描述】:

我的应用中有几个 AVAudioPlayer 实例(在不同的类中)。我为一个实例添加了多任务处理功能,但现在所有音频都在后台播放。我将“应用程序播放音频”键添加到我的 plist 中,并且:

    [[AVAudiosession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

到我的班级。如何将此代码仅定位到 AVAudioPlayer 的 1 个实例?

【问题讨论】:

【参考方案1】:

我能找到的唯一解决方法是暂停特定的 AVAudioPlayer 实例:

applicationWillResignActive

我将实例的创建移至 appdelegate,然后通过以下方式访问它:

appDelegate = [[UIApplication sharedApplication] delegate]

在我的课堂上。可能有更好的方法来做到这一点,但这是我能找到的最快和最简单的方法。

【讨论】:

以上是关于在后台播放一个 AVAudioPlayer 实例的主要内容,如果未能解决你的问题,请参考以下文章

iOS 实现后台 播放音乐声音 AVAudioPlayer

AVAUdioPlayer - 更改当前 URL

使用 AVAudioPlayer 在后台播放声音序列

iOS - AVAudioPlayer 在后台不会继续播放下一首歌曲

应用程序在后台时,AVAudioPlayer 一段时间后不播放

使用 AVAudioPlayer 在后台播放声音而不停止 ipod 音乐