iPhone:屏幕关闭时背景音乐停止,屏幕开启时不继续播放?

时间:2009-11-26 06:28:21

标签: iphone

当我的应用运行时,我有一个在后台(不间断)运行的音乐文件。这是我的要求。但是当我的应用程序运行时,屏幕会根据自动锁定时间设置关闭,音乐会突然显示。然后再次打开屏幕时,我的应用程序即将到来,但音乐无法启动。这是一个已知的bug吗? (或)如何获取屏幕开启通知,以便我可以再次播放音乐。 (或)如何解决它?

我使用此代码始终播放音乐... - (void)PlayLoopMusic {

NSString* path;
NSURL* url;
path = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
url = [NSURL fileURLWithPath:path];

player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
[player prepareToPlay];
//[player setVolume: 0.50];
player.numberOfLoops = -1;
[player setDelegate: self];


[player play];

} 谢谢。

1 个答案:

答案 0 :(得分:2)

除了Morion的回答:

您可以通过以下调用禁用自动屏幕锁定:

[UIApplication sharedApplication].idleTimerDisabled = YES;

您还可以确保在手动锁定屏幕时继续播放。为此,您必须创建一个AudioSession:

AudioSessionInitialize(NULL, NULL, audioInterruptionListener, NULL);
UInt32 category = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
    sizeof(category), &category);
AudioSessionSetActive(YES);

audioInterruptionListener应该是一个处理音频播放中断情况的函数(例如在来电期间)。您可以阅读有关此here的更多信息。