2009-11-26 286 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