最近在做視頻播放時應用系統MPMoviePlayerController播放器播放視頻,發現點擊快進快退會出現黑屏現象,並且點擊完成按鈕也不會返回,代碼以及界面如下所示:
NSURL *url=[self getNetworkUrl]; _moviePlayer=[[MPMoviePlayerController alloc]initWithContentURL:url]; _moviePlayer.view.frame=CGRectMake(0, 0, kScreenWidth, kScreenHeight); _moviePlayer.controlStyle = MPMovieControlStyleFullscreen; [_moviePlayer play]; [self.view addSubview:_moviePlayer.view];
目前實現的效果是點擊快進快退以及完成時退出播放器返回到上一個控制器,具體實現如下:
添加監聽觀察者模式攔截這幾個按鈕的點擊事件,代碼如下
//監聽 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; //實現返回界面 - (void) moviePlayBackDidFinish:(NSNotification*)notification { [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; [_moviePlayer stop]; [self dismissViewControllerAnimated:YES completion:nil]; }
這樣基本可以正常播放視頻了,但是測試發現當視頻播放了幾秒后點擊快退按鈕,不會退出視頻界面而是回到視頻播放的起點重新播放,而如果剛剛播放視頻就點擊快退按鈕則會退出播放界面,而快進按鈕則不存在這個問題。目前還沒有找到太好的解決辦法,如果哪位大神解決了這個問題,還請賜教。