【问题标题】:MPMoviePlayerController Won't Play VideoMPMoviePlayerController 不会播放视频
【发布时间】:2014-03-18 17:32:48
【问题描述】:

以下 MPMoviePlayerController 不会出现在我的 iOS 应用程序中。

我试图让它在我的 tableView 行被选中时出现:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath    *)indexPath  {

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:videoUrl]];
[player setFullscreen:YES];
[player play];
[self.tableView addSubview:player.view];
}

有什么想法吗?

【问题讨论】:

    标签: ios objective-c tableview mpmovieplayer


    【解决方案1】:

    改为尝试:

    MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:videoUrl]];
    [player prepareToPlay];
    [self presentViewController:player animated:YES completion:nil];
    

    【讨论】:

      【解决方案2】:
      1. 如果我是你,我不会将视图添加为表格视图的子视图。

      2. 您忘记为player.view 指定大小。

      3. 你忘记对玩家说prepareToPlay。在你完成之前,MPMoviePlayerController 绝对不会播放。

      【讨论】:

      • 关于 3.,这并不完全正确。来自文档“如果在调用 play 方法时电影播放器​​尚未准备好播放,则该方法会自动调用此 (prepareToPlay) 方法。但是,为了最大限度地减少播放延迟,请在调用 play 之前调用此方法。 developer.apple.com/library/ios/documentation/MediaPlayer/…
      • @Jeff protocol 文档可能会这样说,但实际实现取决于 class,经验表明,对于 MPMoviePlayerController,这种行为在iOS 6 和显式调用 prepareToPlay 现在是绝对必要的。另一方面,AVAudioPlayer(它实现了相同的协议)的行为更像是协议文档中所说的。
      • 我有一个使用 MPMoviePlayerController 的应用程序,但我没有这个问题。 (基础 SDK iOS 7.1)。莫非现在解决了?
      猜你喜欢
      • 2012-11-29
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多