0

这是我的应用程序中当前发生的情况:

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

我希望解锁顺序为:

解锁:按下 iPhone 解锁按钮 -> 滑动解锁 -> 音频恢复 -> 应用出现

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

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

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

PS:如果这不明显,我正在设备上进行测试

4

2 回答 2

0

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

于 2009-11-03T10:03:48.237 回答
0

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

于 2010-09-30T21:10:04.577 回答