3

アプリで複数の動画を再生できるようにする必要があります。

残念ながら、2回目に再生を押すと、ビデオが点滅して表示されます。

私はこのコードだけをビデオの再生に使用します

NSURL * url = [[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@ "Movie" ofType:@ "m4v"]] autorelease];

MPMoviePlayerController * mp = [[MPMoviePlayerController alloc] initWithContentURL:url];

mp.movi​​eControlMode = MPMovieControlModeDefault;

[mpプレイ];

moviePlayer = mp;

[mpリリース];

どこが問題になるのか誰か教えてもらえますか?前もって感謝します!

更新1: AppleMoviePlayerの例にも同じ問題があるようです。

4

4 に答える 4

4

play 関数を呼び出す前に、初期再生時間を -1.0 に設定することによっても実行できます。

mp.initialPlaybackTime = -1.0;

ur play メソッドが呼び出される前に、このコードを配置します。

于 2010-01-29T06:25:28.910 に答える
1

私はこの問題を抱えており、MPMoviePlayerController の再生が終了した後に通知システムを使用してコールバックを実行し、そこでプレーヤー オブジェクトを解放することで解決しました。

映画を再生する前に通知を追加します。

NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease];

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url];

mp.movieControlMode = MPMovieControlModeDefault;

//***Add this line***
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp];

[mp play];

次に、コールバック メソッドを追加します。

-(void)myMovieFinished:(NSNotification*)aNotification
{
    MPMoviePlayerController *moviePlayer = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
    [moviePlayer release];
}
于 2010-01-11T15:44:12.937 に答える
0

また、OS 3.1以降のバージョンのシミュレーターで実行するとうまく再生できることがわかりました。点滅して表示されませんが、追加すると

initialPlaybackTime = -1.0

OS3.0でもうまく機能します。

于 2010-04-08T13:33:00.717 に答える
0

唯一の解決策は、アプリを 3.1 にすることです。

于 2010-02-04T08:27:38.737 に答える