MPMoviePlayerControllerを使用して私のビューに短い6秒のビデオを再生しようとしていて、無期限にループしたいと思っています。私はこれを達成するために、次のコードを使用:MPMoviePlayerControllerビデオをループするときにスレッドの問題が発生する
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"MyVideo" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
moviePlayerController.view.frame = CGRectMake(10, 240, 300, 163);
moviePlayerController.controlStyle = MPMovieControlStyleNone;
moviePlayerController.repeatMode = MPMovieRepeatModeOne;
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
問題は、ビデオが必要に応じて、ループ内で再生を開始したが、その後最終的には繰り返しの乱数の後に停止することです。ビデオのファイルサイズは非常に小さい(500 KB未満)ことに注意してください。
私は、上記のコードをメインスレッドの中で実行しているという事実に起因していると考えました。独自のスレッドで上記のコードを実行するための努力で、私は次のことを試してみました:
- (void)viewDidLoad
{
[super viewDidLoad];
[NSThread detachNewThreadSelector:@selector(playVideo) toTarget:self withObject:nil];
}
-(void) playVideo
{
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"MyVideo" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
moviePlayerController.view.frame = CGRectMake(10, 240, 300, 163);
moviePlayerController.controlStyle = MPMovieControlStyleNone;
moviePlayerController.repeatMode = MPMovieRepeatModeOne;
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
}
さて、問題はMPMoviePlayerControllerのビューのフレームはちょうど映像があるべき黒の四角形が、ビデオなしの再生のように見えるということです。
これを希望どおりに動作させる方法については、私は本当に助けていただきありがとうございます(追加スレッドの有無に関わらず気にしません)。私が必要とするのは、ビデオの再生とループを継続的に行うことだけです。
ありがとうございます!