屏幕锁定时,iOS AVAudioPlayer声音停止播放

时间:2013-08-26 17:13:02

标签: ios avaudioplayer

我已经阅读了很多关于此主题的文章/帖子,但在屏幕锁定时我仍然无法播放声音。

在viewDidLoad中,我初始化音频会话并将audio属性设置为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]

屏幕解锁时声音播放正常,但锁定时声音停止播放。当我解锁屏幕时,会播放(排队)声音。

想法?谢谢!

2 个答案:

答案 0 :(得分:0)

感谢holex:

我从http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_background-audio/获得了“App播放音频”。

如果您将一个带UIBackgroundModes的行添加到plist,它会自动填充并包含此行和其他六种背景模式。如果你谷歌“应用播放音频”和UIBackgroundModes,你会看到很多点击。

[我会通过评论而不是答案回复,但唉,我没有声誉。]

答案 1 :(得分:0)

似乎问题是我在屏幕被锁定后开始播放声音。这主要在How to play sounds in locked mode on iPhone回答。