我已经阅读了很多关于这个主题的文章/帖子,但是在屏幕锁定时我仍然无法播放声音。
在 viewDidLoad 中,我初始化了音频会话并将音频属性设置为 kAudioSessionCategory_MediaPlayback:
AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);
然后我初始化我的 AVAudioPlayer 变量(audioPlayer):
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: @"click" ofType: @"wav"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: &error];
[fileURL release];
我在 info.plist 的“必需的背景模式”部分添加了“应用程序播放音频”。
我将 AVAudioPlayerDelegate 和 AVAudioSessionDelegate 添加到我的视图控制器的 *.h 文件中(尽管我不知道这是否有必要)。
我定期播放(非常短的)声音(每秒约 1 次):
[audioPlayer play]
屏幕解锁时声音播放正常,但我锁定时停止播放。然后当我解锁屏幕时,会播放(排队的)声音。
想法?谢谢!