1

MPMoviePlayerViewController から派生した独自の MoviePlayerViewController を作成しました。標準の presentMoviePlayerViewController メソッドを使用して提示します。すべて正常に動作します。ユーザーがボタンをクリックすると (ムービーを一時停止した後)、ムービー プレーヤー コントローラーの上に別の ShareThisMovie ビュー コントローラーを表示します。これは、presentViewController を使用して行います。

理由はわかりませんが、新しい VC が起動するとすぐに、基になる MoviePlayerViewController が MPMoviePlayerPlaybackDidFinishNotification をすぐに起動します。これに応答して、VC 階層全体を閉じることで応答するため、ユーザーは ShareThisMovie コントローラーを操作する機会がありません。

通知を無視しても、ムービー プレーヤーが起動するということは、ShareThisMovie コントローラーが閉じると、ムービーが最初からやり直すことを意味します。これは明らかに私が望んでいるものではありません...

MoviePlayerController がこのイベントを発生させるのはなぜですか? そうでないことを確認するにはどうすればよいですか、またはこれを回避するにはどうすればよいですか? ShareThisVideoコントローラーを表示する前に最後の再生場所を保存し、後で元に戻そうとしましたが、それでも最初から再生されます...

tnx

4

2 に答える 2

0

回避策ではなく正確な答えではありませんが、最終的に設計を変更しました。MPMoviePlayerViewController から派生する代わりに、標準の UIViewController から派生し、その中に MPMoviePlayerController を埋め込みました。何らかの理由で、これを行うと、プレーヤーのビューコントローラーの上に他の VC を提示したときに、プレーヤーは didFinish イベントを発生させませんでした...

今のところ私の結論は、MPMoviePlayerViewController から VC を派生させないことだと思います...

于 2013-07-28T11:48:12.607 に答える