2013-12-11 22 views
0

我需要显示的图像和视频作为一个应用程序的幻灯片播放。我已经保持了图像和根据所述视频时间长度和2秒为每个图像在阵列中的视频链接和确定哪些是视频和其图像,并设置幻灯片放映计时,现在的问题是,当我开始幻灯片放映和视频来了,它播放,我不能确定视频停止播放或不?如何判断一个媒体播放器已经停止在IOS

我使用MPMediaplayer

 if (player.playbackState == MPMoviePlaybackStatePlaying) 
     { //playing 
     } 
     if (player.playbackState == MPMoviePlaybackStateStopped) 
     { //stopped 
     }if (player.playbackState == MPMoviePlaybackStatePaused) 
     { //paused 
     }if (player.playbackState == MPMoviePlaybackStateInterrupted) 
     { //interrupted 
     }if (player.playbackState == MPMoviePlaybackStateSeekingForward) 
     { //seeking forward 
     }if (player.playbackState == MPMoviePlaybackStateSeekingBackward) 
     { //seeking backward 
     } 

检查停止,但所有的时间它会在MPMoviePlaybackStatePaused部分,当视频被停止。任何人都可以帮助我为什么在视频停止时它总是处于这种状态?或者可以帮助我确定视频停止播放的其他任何方法?

回答

1

注册为MPMoviePlayerPlaybackStateDidChangeNotification这样

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(MPMoviePlayerPlaybackStateDidChange:) 
               name:MPMoviePlayerPlaybackStateDidChangeNotification 
               object:nil]; 

在通知处理方法,检查实际状态 - 例如像这样:

- (void)MPMoviePlayerPlaybackStateDidChange:(NSNotification *)notification 
{ 

    if (player.playbackState == MPMoviePlaybackStateStopped) 
    { 
    //stopped playing 

    } else if (player.playbackState == MPMoviePlaybackStatePlaying) { 

    //is playing 

    } else { 

    } 
} 

删除观察者使用此代码

[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:nil]; 

参考MPMoviePlayerController_Class playback property文档获取更多信息。

+0

有任何问题出现,如果我们不删除观察者,因为我们都练过,除去正常的通知中心观察员? –

+0

是的,你也需要删除观察者。 – suhit

+0

我将使用类似的代码,'[NSNotificationCenter defaultCenter] removeObserver:自名称:MPMoviePlayerPlaybackDidFinishNotification对象:moviePlayer]'的'MPMoviePlayerPlaybackStateDidChange'方法? –

2

添加此观察者

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil]; 

退房的通知MPMoviePlaybackStatePlaying

- (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification { 
    if (moviePlayer.playbackState == MPMoviePlaybackStateStopped) { 
    } 
}