如何在锁定/解锁iPhone时暂停/恢复音频

时间:2009-04-12 10:22:17

标签: ios iphone avfoundation

以下是我的应用中发生的事情:

锁定:按下iPhone锁定按钮 - >音频已暂停
解锁:按下iPhoneUnlocked按钮 - >音频已恢复 - >滑动解锁 - >应用程序出现

我希望解锁序列为:

解锁:按下iPhoneUnlock按钮 - >滑动解锁 - >音频已恢复 - >应用程序出现

我正在使用OS 2.2.1和AVFoundation Framework,这是我已经尝试过的:

  • 我尝试使用AppDelegate的applicationWillResignActive和applicationDidBecomeActive回调,但它不起作用。虽然在正确的时间调用applicationDidBecomeActive(即当用户滑动解锁设备时),一旦按下解锁按钮,音频就会恢复(我猜这是因为音频会话),所以我尝试了:

  • 我实现了AVAudioPlayerDelegate的audioPlayerBeginInterruption和audioPlayerEndInterruption选择器,看起来这些方法永远不会被调用(我已经放置了日志调用)。我确定我正在正确设置委托,因为在音频文件播放完毕后正确调用了audioPlayerDidFinishPlaying。

P.S:如果不明显的话,我正在设备上进行测试

2 个答案:

答案 0 :(得分:0)

当音频会话中断时,它们显然只会被调用,也就是说,如果您正在播放音频,并且正在被请求活动会话的其他音频中断。 简而言之:当手机变为非活动状态时,它们不会被呼叫,但是当您接到呼叫时它们会被呼叫。 但即便如此,当AVAudioplayer当时处于活动状态时,它们才会被调用。 我还在和那个糟糕的系统搏斗......

答案 1 :(得分:0)

轻微滥用系统,但您可以观察文件保护通知,以了解设备何时解锁。您可以使用它来决定何时再次播放音频。