2013-11-04 189 views
1

这是我的代码。我想播放设备存储器中存在的一个视频。视频格式是.mov。但我只有黑屏。MPMoviePlayerController不会播放视频

NSString *documentdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
     NSString *tileDirectory = [documentdir stringByAppendingPathComponent:urlpath]; 
     self.videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:tileDirectory]]; 
     [self.videoPlayer.view setFrame:CGRectMake(0, 0, 320, 420)]; 

     [self.videoPlayer prepareToPlay]; 
     [self.view addSubview:self.videoPlayer.view]; 
     [self.videoPlayer play]; 
+0

您可以发布进一步的代码。 – Woodstock

+0

@JohnWoods:这只是MPMoviePlayerController的代码。我捕捉屏幕并制作视频。停止录制后,我将视频保存在设备的本地存储器中。现在我正在模拟器中测试。所以完成录制后,我搜索该Url有一个视频它完美运行。但我试图通过MPMoviePlayerController显示视频,它只显示黑屏 – Seeker

+0

确定,所以你知道视频被正确记录? ---你在哪里执行上面的代码?在你的ViewController中?如果是的话在哪个方法?你的videoPlayer是伊娃吗? – Woodstock

回答

0

我得到了我的输出结果。我参考这个链接:How to play video stream with MPMoviePlayerController in iOS解决我的问题。

下面我修改代码..

self.videoPlayer = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:urlpath]]; 
    self.videoPlayer.movieSourceType = MPMovieSourceTypeStreaming; 
    [self.videoPlayer.view setFrame:CGRectMake(0, 0, 320, 420)]; 
    [self.view addSubview: self.videoPlayer.view]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlaybackDidFinish:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:nil]; 
    [self.videoPlayer.backgroundView setBackgroundColor:[UIColor blackColor]]; 
    [self.videoPlayer play]; 

这条线是关键.. self.videoPlayer.movieSourceType = MPMovieSourceTypeStreaming;

+0

这是奇怪的,听起来很像一个错误。您错误地将本地电影文件识别为远程流 - 如果确实解决了您的问题,您应该在Apple提交错误报告! – Till

+0

@Till:在ios7中它可以工作,但其他的不起作用。如何播放本地电影文件。您能否告诉 – Seeker

+0

请确保您尝试的内容与iOS完全兼容。尝试一个不同的视频,看看是否有任何改变。如果内容不是流,则不要将内容标识为流。 – Till

相关问题