2

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

在 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]

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

想法?谢谢!

4

2 回答 2

0

感谢holex:

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

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

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

于 2013-08-26T19:14:16.660 回答
0

问题似乎是我在屏幕锁定后开始播放声音。这主要在如何在 iPhone 上以锁定模式播放声音中得到解答。

于 2013-08-27T14:29:41.027 回答