我使用MPMoviePlayerController是因为我想播放电影。
一个问题。当我创建MPMoviePlayerController时,应用程序会停止一点。
这是我的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"];
NSURL *videoURL = [NSURL fileURLWithPath:path];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
moviePlayer.scalingMode=MPMovieScalingModeFill;
moviePlayer.controlStyle=MPMovieControlStyleNone;
moviePlayer.shouldAutoplay=NO;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieRestartCallback:)
name:MPMoviePlayerPlaybackStateDidChangeNotification
object:nil];
[moviePlayer.view setFrame:CGRectMake(20, 20, 280, 200)];
[self.view addSubview:moviePlayer.view];
'
为什么应用程序停止?这个问题的解决方式是吗?
如果您查看MPMoviePlayerController
的文档,您会发现在示例中,他们甚至在将电影播放器添加到视图之前调用prepareToPlay
。
我会添加[mediaPlayer prepareToPlay]
您设置播放器的位置。
MPMedia播放协议参考 说: "若要最大程度地减少播放延迟,请在调用 Play 之前调用此方法"
我认为您可以使用多线程函数。
NSOperationQueue
是线程安全的(您可以从不同的线程向其添加操作,而无需锁定),并使您能够将 NSOperation 对象链接在一起。
可以使用以下代码快照来使用它们。
NSOperationQueue *queue = [NSOperationQueue mainQueue];
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
// your code here
}];
[queue addOperation:operation];
我希望这对你有帮助。