私は数週間前にこれの多くを理解しました. 利用可能な通知を確認してください。http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html
次のようなものを viewDidLoad に追加します。
// Remove the movie player view controller from the "playback did finish" notification observers
[[NSNotificationCenter defaultCenter] removeObserver:_moviePlayer
name:MPMoviePlayerPlaybackDidFinishNotification
object:_moviePlayer];
// Register this class as an observer instead
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:_moviePlayer];
これで、ビューやサムネイルなどを再追加できるメソッドができました。
- (void)movieFinishedCallback:(NSNotification*)aNotification
{
// Obtain the reason why the movie playback finished
NSNumber *finishReason = [aNotification userInfo][MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
if ([finishReason intValue] == MPMovieFinishReasonPlaybackEnded) {
[self.view addSubview:self.moviePlayer.view];
}
(このコードは私のプロジェクトからその場で適応されたものであり、適応するために考える必要があるかもしれません!)
MPMoviePlayerController には、ムービーの再生中、一時停止中、停止中、終了時などに発生する多くの通知があります。これらのメソッドにコードを追加して、プレゼンテーションを適切に制御できます。
私の場合、調査とハッキングに約 1 日 (およびクリーンアップと調整にさらに半日) かかりましたが、非常に優れた再生/一時停止の透明なボタンを取得することができました。プレーヤーの状態に基づいて、すべてのロードまたはアンロードが停止しました。これは、私が望むことを正確に行うシンプルなカスタム プレーヤー コントロールです。完全に実行可能です。1 つのプレイヤー ステートから始めて、必要なものを取得し、次のステートに移動するだけです。