9

为什么 AVAudioPlayer 在应用程序来自后台模式后继续播放,即使播放器在应用程序进入后台之前已暂停?

通常,我想知道为什么 AVAudioPlayer 在应用程序来自后台后会自动继续播放(因为当应用程序进入后台时 - 我无法像 AVAudioPlayer 和 AVAudioSession 的其他代表一样捕获 beginInterruption)。ps:对不起我的英语:)

4

3 回答 3

0

我今天花了好几个小时试图弄清楚完全相同的事情。

每当我的应用程序进入后台模式时,音频会在 UIApplicationDidEnterBackgroundNotification 之后自动暂停,并在我得到 UIApplicationWillEnterForegroundNoticiation 之前继续播放。即使我在收到后台通知时暂停它。

在此处输入图像描述

当我启用 UIBackgroundMode 音频时,当应用程序进入后台时,我可以自己暂停我的 AudioQueue(或 AVAudioPlayer,如果你使用它)。这导致我的 UI 显示音频播放器已暂停,并使我能够完全控制应用程序状态之间的音频播放。

于 2013-10-24T15:42:24.153 回答
0

当您在后台推送应用程序时,应用程序将处于休眠状态,即它不再处于活动状态。这就是您无法捕获 beginInterruption 的原因。当应用程序进入前台时,应用程序再次变为活动状态,这就是 AVAudioPlayer 再次开始播放的原因..我希望这会有所帮助

于 2011-11-14T11:36:55.807 回答
0

到目前为止,我为 iOS 13 SDK 提出的修复程序(不确定这是否相关,但在从 iOS 12 SDK 迁移到 13 后,我的错误已经开始)看起来很奇怪:

// duplicate pausing the player when app resigns active
self.audioPlayer.pause()
self.audioPlayer.pause()
于 2019-11-18T17:59:09.043 回答