• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

objective-c - MPMoviePlayerController 无法播放某些 3gp 格式的视频

[复制链接]
菜鸟教程小白 发表于 2022-12-13 15:59:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我使用 MPMoviePlayerViewController 播放格式为 3gp 的视频。有的视频可以播放,有的不能播放。 MPMoviePlayerViewController 将立即加载并结束,就像视频是 0 秒持续时间一样。 我认为视频一定有问题。但是我用的是相册里面的iphone的视频播放器,它可以播放视频! 所以我认为 MPMoviePlayerViewController 可能并不强大。我想尝试使用 avfoundation 框架 avplayer 播放视频。在我的内容 View 中添加一个子层。失败的.. 这让我发疯!有人遇到过问题吗?

这是我的代码

-(void) playMovieWithSDK: (NSURL*) movieUrl
{
if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 3.2) {
    MPMoviePlayerViewController *mSdk4Player = [[MPMoviePlayerViewController alloc] initWithContentURL:movieUrl];
    mSdk4Player.navigationController.navigationBar.tag = 1000;
    if (mSdk4Player) {
        [self presentMoviePlayerViewControllerAnimated:mSdk4Player];
        mSdk4Player.moviePlayer.scalingMode= MPMovieScalingModeAspectFit;
        mSdk4Player.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
        mSdk4Player.moviePlayer.shouldAutoplay = YES;
        [mSdk4Player release];

        [[NSNotificationCenter defaultCenter]addObserver: self
                                                selector: @selector(movieFinishedCallback
                                                    name: MPMoviePlayerPlaybackDidFinishNotification
                                                  object: mSdk4Player.moviePlayer];
    }
}
else if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 3.2) { // sdk 3.0 播放器
    MPMoviePlayerController* mSdk3player = [[MPMoviePlayerController alloc] initWithContentURL: movieUrl];
    mSdk3player.scalingMode = MPMovieScalingModeAspectFit;
    [[NSNotificationCenter defaultCenter]addObserver: self
                                            selector: @selector(movieFinishedCallback
                                                name: MPMoviePlayerPlaybackDidFinishNotification
                                              object: mSdk3player];
    [mSdk3player play];
    }
}



Best Answer-推荐答案


您尝试播放的视频可能与 MPMoviePlayerController 支持的基本编解码器不兼容。

根据the documentation :

此类播放 iOS 支持的任何电影或音频文件。这包括流式内容和固定长度文件。对于电影文件,这通常意味着扩展名为 .mov、.mp4、.mpv 和 .3gp 并使用以下压缩标准之一的文件:

  • H.264 Baseline Profile Level 3.0 视频,最高 640 x 480 @ 30 fps。 (Baseline 配置文件不支持 B 帧。)

  • MPEG-4 第 2 部分视频(简单配置文件)

如果您使用该类播放音频文件,它会在播放音频时显示带有 QuickTime Logo 的白屏。对于音频文件,此类支持最高 48 kHz 的 AAC-LC 音频和最高 48 kHz 的 MP3(MPEG-1 音频层 3)立体声音频。

关于objective-c - MPMoviePlayerController 无法播放某些 3gp 格式的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211802/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap