为什么应用程序来自后台模式后AVAudioPlayer会自动继续播放?

问题描述 投票:6回答:3

为什么应用程序从后台模式发出后AVAudioPlayer为什么仍继续播放,即使播放器在应用程序进入后台之前已经暂停了?

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

iphone background avaudioplayer avaudiosession
3个回答
0
投票

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


0
投票

今天我花了很多时间试图找出完全相同的事情。

[只要我的应用程序进入背景模式,音频就会在UIApplicationDidEnterBackgroundNotification之后自动暂停并继续播放,直到我得到UIApplicationWillEnterForegroundNoticiation。即使在我收到后台通知时暂停了它。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9rMjVqNC5wbmcifQ==” alt =“在此处输入图像描述”>

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


0
投票

到目前为止,我为iOS 13 SDK提出的修复程序(不确定是否与此相关,但是从iOS 12 SDK迁移到13之后,对我来说是个错误已开始出现:

// duplicate pausing the player when app resigns active
self.audioPlayer.pause()
self.audioPlayer.pause()
© www.soinside.com 2019 - 2024. All rights reserved.