2012-09-10 98 views
0

當iPhone/iPod進入睡眠或鎖定狀態時,我正在使用以下代碼繼續播放音頻。當iPhone/iPod進入睡眠或鎖定狀態時繼續播放音頻

mv = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://myurl/myMusic.mp3"]]; 
mv.movieSourceType = MPMovieSourceTypeUnknown; 
[self.view addSubview:mv.view]; 
[mv play]; 

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); AudioSessionSetActive(true); 

通過使用此代碼我的設備不能進入休眠模式,但我想要的是,設備應進入休眠模式,但音頻不應該停止播放。
我在info.plist文件中添加了Required background modesApp plays audio

請告訴我我錯在哪裏?爲什麼設備不進入睡眠模式/鎖定?

+2

試試這個http://stackoverflow.com/a/7545093/1557663 –

+0

沒有運氣........ – iUser

+0

可我知道爲什麼投下來? – iUser

回答

1

首先,將這些框架包含到您的項目中:AudioToolbox,CoreAudio,MediaPlayer和AVFoundation。將它們全部導入到放置播放器的viewController中。您分配並開始播放音頻後,插入下面的代碼:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); 
AudioSessionSetActive(true); 

最後,去你的應用程序Info.plist文件,並添加一行命名UIBackgroundModes。新行將是一個數組,並將包含1個項目,項目0.對此,您只需將該值設置爲音頻。你完成了!享受你的背景音頻播放應用程序!

希望它有幫助。快樂編碼:)

+0

我已經試過了。唯一的問題是設備不會進入睡眠模式。 – iUser

+0

@Anshuk我覺得你提供的代碼,將會使設備清醒,直到應用程序是在前臺。 – viral

2

使用此代碼在viewDidLoad中:

NSError *setCategoryErr = nil; 
NSError *activationErr = nil; 
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr]; 
[[AVAudioSession sharedInstance] setActive: YES error: &activationErr]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; 
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; 

這是爲我工作的罰款。

+0

試過了。再次的應用程序不會進入睡眠模式..我不知道問題在哪裏。 – iUser

+0

您已添加所需的背景模式,應用程序在我的info.plist文件中播放音頻? – Vishal

+0

是的。我已經添加了所有這些東西。 – iUser

相關問題