0

MPMoviePlayerを使用してビデオURLをストリーミングしています。

ユーザーがビューをタップすると、ビデオはビューのフレームから始まります。それは大丈夫です。ビデオが埋め込まれているため、デフォルトのコントロールにはズームインボタンが配置されています。

ユーザーがズームインを押すと、再生を中断することなく、ビデオはフルスクリーンでOKになります。

ただし、ユーザーがもう一度ズームアウトボタンを押すと、次の3つの問題が発生します。

  • ビデオは、元の位置に戻るのではなく、画面の隅にズームしてから消えます。

  • コーナーに行くとビデオが消え、ビデオの再生を続ける代わりに再生が終了します。

  • MPMoviePlayerDidExitFullscreenNotificationが呼び出されることはなく、MPMoviePlayerWillExitFullscreenNotificationのみが呼び出されます。nilとmediaPlayerControllerを通知センターに送ってみました。

また、[完了]ボタンを押すと、ビデオが画面の隅に移動して消えます。

私のプレーヤーは次のようにして作成されます。

   moviePlayer=[[MPMoviePlayerController alloc] init];
    moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
    moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
    moviePlayer.shouldAutoplay=YES;
    moviePlayer.controlStyle=MPMovieControlStyleEmbedded;
    moviePlayer.view.hidden = YES;

次に、ユーザーがビューをタップすると、これが発生します。

- (void) playVideo {

    NSURL *url=[NSURL URLWithString: _news.videoUrl];

    moviePlayer.contentURL = url;
    moviePlayer.view.hidden = NO;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillExitFullScreen:) name:MPMoviePlayerWillExitFullscreenNotification object:moviePlayer];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreen:) name:MPMoviePlayerDidExitFullscreenNotification object:moviePlayer];

    [moviePlayer play];

}



- (void) moviePlayerWillExitFullScreen:(NSNotification*)notification {
    NSLog(@"WILL EXIT FULLSCREEN");

}

- (void) moviePlayerDidExitFullScreen:(NSNotification*)notification {
    NSLog(@"EXITED FULLSCREEN");  //NOT CALLED
}


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

    NSLog(@"FINISHED PLAYIIING");

    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
    moviePlayer.view.hidden = YES;
}
4

1 に答える 1

1

それまでの間、4 つの質問のうち 3 つにお答えします。

  • ビデオは元の位置に戻らず、画面の隅にズームしてから消えます。

  • コーナーに移動するとビデオが消え、ビデオの再生を続行する代わりに再生が終了します。

  • また、[完了] ボタンを押すと、ビデオが画面の隅に移動して消えます。

問題は、フルスクリーン モードを終了した後に-viewWillAppearAnimatedメソッドが呼び出されることでした。そのメソッドでレイアウトが変更されたため、再生が停止し、ビューが隅に移動しました。

于 2013-02-07T07:09:31.647 に答える