0

リモートロケーションで利用可能なビデオファイルを再生する必要があるという要件があります。

URLをMPMoviePlayerControllerインスタンスに渡し、メソッドplayを呼び出しています。

現在、映画がダウンロード中です。映画が完全に読み込まれてルートビューに戻る前に、[完了]ボタンをクリックしました。

MPMoviePlayerPlaybackDidFinishNotification通知が呼び出されました。ビデオを停止してプレーヤーをリリースしました。これがコードです

- (void)movieDidFinish:(NSNotification *)aNotifciation
{

    [self.moviePlayer stop];

    [self removeActivityIndicatorView];

    [self.tableView reloadData];

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

    [moviePlayer release];

    moviePlayer = nil;

}

ただし、それでもビデオはバックグラウンドで読み込まれ、iamはオーディオも聞くことができます。

これは起こらないはずです。

誰かがこれに対する解決策を与えることができますか?

4

2 に答える 2

1
[movieplayer stop];
movieplayer.initialPlaybackTime = -1.0;
[movieplayer release]; 

初期再生時間を -1 に設定すると、問題が解決するはずです。

于 2010-03-04T07:27:54.423 に答える
0

MPMoviePlayerController が終了時に送信する NSNotification に登録します。次に例を示します。

[[NSNotificationCenter defaultCenter]  
    addObserver:self 
       selector:@selector(movieFinishedCallback:)                                                  
           name:MPMoviePlayerPlaybackDidFinishNotification 
         object:player]; 

これは、メインの ViewController クラスの「viewDidLoad」内に配置するのに適しています。

次に、メソッド "movieFinishedCallback:" (引数として渡された NSNotification オブジェクトを取得します。必要に応じて、これを使用して、発生した終了の種類に関する詳細を確認できます) 内で、movieplayercontroller を閉じます。

于 2010-12-07T08:16:37.697 に答える