【发布时间】:2011-08-21 18:32:12
【问题描述】:
我正在使用MediaPlayer 框架在我的应用程序启动后立即播放相当大的电影(~200 MB)。当我尝试在我的viewDidLoad 中播放视频时,断点指示已添加视图,但视频未显示在设备上。
然后我设置了一个按钮来确认视频是否有效。从按钮运行 IBAction 没有问题。
然后我被难住了。我想知道这是否与应用程序一启动就调用视频这一事实有关。所以我在 viewDidLoad 调用中添加了一个延迟 5 秒的NSTimer。瞧,它工作得很好。任何人都可以解释为什么视频不会播放,除非有初始延迟?代码如下。
- (void)viewDidLoad {
NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(playMovie) userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:currentTimer forMode:NSRunLoopCommonModes];
[super viewDidLoad];
}
-(IBAction)playMovie
{
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"Speed" ofType:@"mov"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
}
【问题讨论】:
标签: ios cocoa-touch mpmovieplayercontroller nstimer viewdidload