2012-01-19 65 views
1

當iPhone自動鎖定或用戶鎖定手機時,如何繼續iPhone中的音頻播放?iPhone鎖定時繼續音頻播放

我已經嘗試過

session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayback error:NULL]; 

,但似乎並沒有工作。

回答

1

我終於想通了如何做到這一點!

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

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

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

0

This link應該有所幫助。

你需要阻止應用進入深度睡眠模式:

UInt32 category = kAudioSessionCategory_MediaPlayback; 
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
                      sizeof(category), &category); 

if (result){ 
    DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n"); 
} 

result = AudioSessionSetActive(true); 
if (result) { 
    DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n"); 
} 
+0

感謝您的回答!但是,當我嘗試編譯代碼時,我收到一些錯誤和警告,我不太明白。首先,XCode認爲'kAudioSessionCategory_MediaPlayback'是試圖編寫'AVAudioSessionCategoryPlayback'。然後我得到一個使用未聲明標識符「kAudioSessionCategory_MediaPlayback」的錯誤。並且在C99中發出警告「隱式聲明函數AudioSessionSetProperty」無效。 –

相關問題