2011-10-25 34 views
1

我的應用程序使用MPMoviePlayerController播放播客。在iOS4的,我能夠繞過鎖屏停止播客的播放用下面的代碼:MPMoviePlayerController不會在屏幕鎖定期間播放ios5

OSStatus audioInitStat = AudioSessionInitialize (NULL,NULL,NULL,NULL); 
if (audioInitStat != kAudioSessionNoError) { 
    printf("AudioSession Failed to Initialize\n"); 
} 
else { 
    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
    audioInitStat = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); 
} 

這可能是偶然的運氣,這工作過,但事實是,現在引進的ios5,當電影播放器​​不在ios4中時,電影播放器​​停止屏幕鎖定。有誰知道如何讓電影播放器​​在屏幕鎖定期間播放。我不想使用:

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]; 

因爲那樣會殺死電池(即我想讓屏幕變暗)。任何想法將不勝感激。如果我不能使用電影播放器​​,你知道我是否可以使用ios的任何其他音頻功能播放播客?

+0

必須有解決這個問題的方法,因爲spotify和iheart廣播應用程序仍然可以使用鎖定屏幕。有任何想法嗎? – JeffB6688

回答

0

多挖後,我發現了部分解決方案:

轉到您的info.plist爲您的應用程序。

中添加鍵值「所需的背景模式」並將其值設置爲「應用程序播放音頻」 中添加鍵值「應用程序並在後臺運行」並將其值設置爲「YES」

我不知道在哪裏這是記錄,但它的作品。

這只是一個部分的解決方案。有了這個,音頻可以在後臺播放,但不能按主頁按鈕訪問其他應用程序。當您按下主頁按鈕時,該應用程序將終止。

+0

儘管這是一個部分解決方案,並且在您測試它時起作用,但是當您嘗試將其提交給應用商店時,xcode組織者無法驗證階段(至少使用ios5) – JeffB6688

+0

您是否在按下按鈕時找到了解決此問題的方法主頁按鈕? – Oblieapps

+0

@EmreAkman從iOS6開始,就沒有解決方案。我在很長的一段時間嘗試了很多東西,但沒有成功。我沒有看過它與iOS7。 – JeffB6688

1

在iOS 5.x中,您需要在您的info.plist文件中設置兩個鍵。

首先添加行向Key「UIApplicationExitsOnSuspend」做值的Boolean文件,並將其設置爲「否」

下一頁添加一行一鍵名爲「UIBackgroundModes」
這將是一個數組和你想的第一個項目有「音頻」的價值

您可能還需要設置音頻會議AVAudioSessionCategoryPlayback的好措施:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 

這將工作˚F或使用MPMoviePlayerController而不是視頻回放的音頻文件。

相關問題