MPMoviePlayerController 不播放本地视频

Posted

技术标签:

【中文标题】MPMoviePlayerController 不播放本地视频【英文标题】:MPMoviePlayerController doesn't play local Videos 【发布时间】:2013-12-05 09:27:28 【问题描述】:

我正在尝试通过两种方法在 ios 6.0 中通过 MPMoviePlayerController 播放视频。

    就在相机捕捉到它之后 来自相机胶卷

这是它的sn-p。

-(void) playMovie

  self.moviePlayer = [[MPMoviePlayerController alloc] init];
  [self.moviePlayer prepareToPlay];
  [self.moviePlayer setContentURL:self.movieURL];
  self.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
  [self.moviePlayer.view setFrame:CGRectMake ( 0, 0, 320, 476)];

  [self.view addSubview:self.moviePlayer.view];

  [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:self.moviePlayer];

  [self.moviePlayer play];

我尝试将属性moviePlayer 视为既强大又保留但没有用。 我的问题与Question 非常相似,视频在一秒钟内停止。但是,如果您正在通过 Internet 播放视频,则效果很好。

这是我尝试过的Git Source Code

【问题讨论】:

【参考方案1】:

尝试像这样初始化self.moviePlayer

  self.moviePlayer = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:contentPath]];

//contentPath is your movie file path

【讨论】:

也试过这个..没用...你可以看看我的github代码在函数playMovie【参考方案2】:

我发现了这个问题。

我在 iPad 上使用它,因此我使用UIPopoverController 从库中选择视频,选择完成后我关闭didFinishPickingMediaWithInfo 中的弹出框并调用函数playMovie(如上所述)

这里的问题是,如果关闭 popover,moviePlayer 也会被删除。

虽然我不明白为什么会发生这种情况,但我为此编写了一个解决方法,方法是全局保存 URL 路径并添加一个额外的播放按钮以在关闭弹出框后开始播放电影。完整代码为here

【讨论】:

以上是关于MPMoviePlayerController 不播放本地视频的主要内容,如果未能解决你的问题,请参考以下文章

MPMoviePlayerController 不播放本地视频

MPMoviePlayerController 随机不播放电影

MPMoviePlayerController 音频/视频不同步

MPMoviePlayerController 不播放本地文件

iOS:MPMoviePlayerController 完成按钮不起作用

MPMoviePlayerController 播放本地文件,但不通过 HTTP 远程播放