0

アプリケーションで画像やビデオをスライド ショーとして表示する必要があります。画像とビデオのリンクを配列に保持し、どちらがビデオでどちらが画像であるかを判断し、ビデオの長さと各画像の2秒に従ってスライドショーのタイミングを設定しました。問題は、スライドショーを開始するときですビデオが来て再生されますが、ビデオの再生が停止しているかどうかを判断できませんか?

使用しておりますよって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しかし、ビデオが停止すると、常にセクションに移動します。ビデオが停止したときに常にその状態になるのはなぜですか?または、ビデオの再生が停止していると判断するのに役立つその他の方法はありますか?

4

2 に答える 2

2

このオブザーバーを追加

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

MPMoviePlaybackStatePlaying の通知を確認してください

- (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification {
     if (moviePlayer.playbackState == MPMoviePlaybackStateStopped) {
     }
}
于 2013-12-11T13:00:06.790 に答える
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 再生プロパティのドキュメントを参照してください。

于 2013-12-11T13:00:36.143 に答える