0

これは私を困惑させています。誰かが答えを持っているなら、彼らはありがたいです。

アプリの読み込みプロセス中にビデオを再生する次の方法があります。

-(void)playLoadingMovie
{
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"movie" ofType:@"mp4"];
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];
movieController.moviePlayer.repeatMode = MPMovieRepeatModeOne;
[movieController.moviePlayer setControlStyle:MPMovieControlStyleNone];
[movieController.view setFrame:CGRectMake(0, 0, self.view.frame.size.height, self.view.frame.size.width)];
[self.view addSubview:movieController.view];
NSLog(@"repeatMode: %d",movieController.moviePlayer.repeatMode);
}

コード内の他の場所や状況で、すべてが適切に宣言、合成、リリースなどされます。この特定の方法は、正しく繰り返されないという事実を除いて、問題なく機能します。

repeatModeがMPMovieRepeatModeOneに設定されていることがわかります。コードを実行すると、logステートメントは「repeatMode:1」を正しく出力します。

私は何かハックをして、映画が終わったときにオブザーバーを設定し、映画をもう一度再生するメソッドを呼び出させることができることを知っていますが、このコードを正しく機能させたいと思います。

何か案は?

4

2 に答える 2

2

それが繰り返されない理由を発見しました。映画を始めた後、私はいくつかのメモリを大量に消費するプロセスを開始しますが、残念ながら、メインスレッドで多くのことが起こっているため、映画が終了したときに、繰り返すのに十分なメモリがありません。ラメ。

したがって、コードに問題はありません。

今度は、映画を繰り返すためのメインスレッドにスペースを空けるために、いくつかのプロセスに他のスレッドを使用することを検討します。

于 2011-05-27T19:18:18.583 に答える
0

これはあなたがしているのと同じことかもしれませんが、プロパティへのアクセスが機能しない場合があります。setRepeatModeを試してください。

于 2011-05-26T22:04:06.423 に答える