【问题标题】:Unable to play video in MPMoviePlayer无法在 MPMoviePlayer 中播放视频
【发布时间】:2013-11-08 13:56:16
【问题描述】:

当我从库中选择一个视频并将其 URL 传递给播放器时,我需要使用“MPMoviePlayerViewController”播放视频,它播放大约 2 秒并停止响应(根本没有交互),并在控制台中找到这些行

[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
[MPAVController] Autoplay: Enabling autoplay
[MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
[MPAVController] Autoplay: _streamLikelyToKeepUp: 0 -> 1
[MPAVController] Autoplay: Disabling autoplay for pause
[MPAVController] Autoplay: Disabling autoplay
[MPAVController] Autoplay: Disabling autoplay for pause
[MPAVController] Autoplay: Disabling autoplay
[MPAVController] Autoplay: Disabling autoplay for pause
[MPAVController] Autoplay: Disabling autoplay
[MPAVController] Autoplay: Disabling autoplay
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Likely to keep up or full buffer: 0
[MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up.
[MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
[MPAVController] Autoplay: Likely to keep up or full buffer: 1
[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: _streamLikelyToKeepUp: 0 -> 1
[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Likely to keep up or full buffer: 0
[MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up.
[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)

我已经尝试了“stackoverflow”中的所有内容,但是没有用,任何人都可以建议我解决方案。

设备:iPad-3,版本:6.1

请推荐

这是我在播放视频时使用的代码

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];

    if([mediaType isEqualToString:(NSString*)kUTTypeMovie])
    {
        [self playVideoWithURL:[info objectForKey:UIImagePickerControllerMediaURL]];
    }
}


- (void)playVideoWithURL:(NSURL*)fileURL
{
    if(!self.playerViewController)
    {
        self.playerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
        [self.moviePlayerContainer addSubview:self.playerViewController.view];
        self.playerViewController.moviePlayer.scalingMode = MPMovieScalingModeNone;
        self.playerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
        [self.playerViewController.moviePlayer stop];
    }
    else
    {
        self.playerViewController.moviePlayer.contentURL = fileURL;
    }

    CGRect movieFrame = self.moviePlayerContainer.frame;
    movieFrame.origin = CGPointZero;
    self.playerViewController.view.frame = movieFrame;
}

【问题讨论】:

  • 您能否在设置 MPMoviePlayerViewController 的位置发布一些代码?
  • 我已经编辑了问题并添加了用于播放视频的代码。

标签: ios ipad mpmovieplayercontroller mpmovieplayer


【解决方案1】:

发生这种情况仅仅是因为该电影没有本地存储,而是尝试通过 iCloud 逐步下载。

您的网络带宽(针对 iCloud)无法处理该视频,因为它的要求太高了。

没有你的日志,你会看到这样的行:

可能跟上或满缓冲区:0

这就像来自播放器的早期警告,告诉您它很可能无法以足够快的速度加载数据以进行流畅的播放。

另一个重要的部分是这一行

[MPCloudAssetDownloadController] 为媒体请求优先级 项目 ID:0

那个告诉你系统正在远程下载电影。它试图确保其他可能的并行下载应该等待这个,但显然这并没有释放足够的带宽(因为没有更多可用的带宽)。

恐怕,你无法直接解决它。

您需要先从 iCloud 下载该视频,否则您需要降低其质量(重新编码)。

【讨论】:

  • 但我没有从 iCloud 加载视频文件,它是本地存储在“相机胶卷”的视频中。
猜你喜欢
  • 2018-11-15
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多