我試圖在我的視圖中使用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的視圖的框架只是顯示爲黑色矩形,其中的視頻應該是,但沒有視頻播放。
我真的很感謝任何幫助,如何讓這個工作按需(我不在乎,如果它有或沒有額外的線程)。我需要的只是視頻播放和循環播放。
在此先感謝!