我有一些問題讓MPMoviePlayerController播放音頻和視頻繼續屏幕鎖/應用程序後臺。MPMoviePlayerController,與音頻和視頻背景播放(分離視頻層?)
這是我已經試過:
「所需的背景模式」是與第一項的數組:[項目0:應用程序播放音頻。
而且,我的視圖控制器具有:
-(void)viewDidLoad {
[super viewDidLoad];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *setCategoryError = nil;
BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (!success) {
NSLog(@"DOH Could not set Category!");
}
NSError *activationError = nil;
success = [audioSession setActive:YES error:&activationError];
if (!success) {
NSLog(@"DOH Could not set Active!");
}
…
}
- (void)viewWillAppear:(BOOL)animated {
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
switch (event.subtype) {
case UIEventSubtypeRemoteControlPlay:
NSLog(@"Play");
break;
case UIEventSubtypeRemoteControlPause:
NSLog(@"Pause");
break;
default:
break;
}
}
- (BOOL)canBecomeFirstResponder{
return YES;
}
,我試圖修改該應用程序是(所有意圖和目的)的示例應用程序的LBYouTubeView,它允許您通過確定播放YouTube視頻流URL,並使用MPMoviePlayerController播放它。上面的完整代碼是on github - 它是一個修改的LBYouTubeView項目。
音頻/視頻播放正常,但是當應用程序最小化時(無論我嘗試什麼),MPMoviePlayerController都會暫停。
我已經鑽研了文檔& SO的解決方案,但無濟於事。
注:蘋果公司的技術說明「[在後臺播放媒體(在後臺播放媒體)」指出:
應用播放視頻的不能繼續播放該視頻,同時在後臺運行。
,但接着說:
注:如果您在電影中禁用視頻軌道,或將其從相關AVPlayer卸下AVPlayerLayer它將使電影中的音頻繼續在後臺播放。
所以 - 有沒有人有任何想法如何這可能?我知道我可以將提取的YouTube網址提供給像Matt Gallagher's Audio Streamer之類的東西,並且只能完成音頻支持播放/暫停/電話鎖定等,但不幸的是,我仍然需要該視頻。謝謝
p.s.只需重複一遍:我試圖使用的代碼是on github伴隨着我的更改 - 它只是一個修改過的LBYouTubeView項目,除了我上面詳細介紹的以外,幾乎沒有什麼變化。
編輯馬特·加拉格爾有written a post on CocoaWithLove這個問題 - 似乎他看中切換到該應用程序最小化時,雖然他承認這是一個有點靠不住,因爲它會導致沉默了幾秒鐘,僅音頻流,(當最小化和恢復應用程序),同時它緩衝新的流。不理想:(
該死的在這裏看到一些東西(試圖在背景中使用rubymotion進行視頻音頻)......但是有一個MPMoviePlayerViewController的實例,我相信這個實例必須在這裏被控制,我沒有得到你的位置得到這個'currentItem',因此'跟蹤' – Ben 2014-03-22 23:53:07
'凱,'App.run_after(0.2){@ player.play}'與泡沫包裝。必須推遲。 – Ben 2014-03-23 00:39:14