2009-11-26 291 views
0

我有一个音乐文件,在我的应用程序运行时在后台运行(不停止)。这是我的要求。但是当我的应用程序正在运行时,按照设置的自动锁定时间屏幕熄灭,音乐被覆盖。然后当再次开启屏幕时,我的应用程序即将到达,但音乐无法启动。这是一个已知的错误吗? (或)如何让屏幕开启通知,以便我可以再次播放音乐。 (或)如何解决它?iPhone:屏幕关闭时背景音乐停止,屏幕开启时不会继续播放?

我用这个代码总是播放音乐... - (无效){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]; 

} 谢谢。

回答

2

除了莫里恩的回答是:

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

[UIApplication sharedApplication].idleTimerDisabled = YES; 

您也可以确保播放的推移而屏幕被手动锁定。为此,你必须创建一个AudioSession:

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

audioInterruptionListener应该是处理时(来电时为例)音频播放中断的情况下,一个功能。你可以阅读更多关于这个here