MPMoviePlayerController无法播放一些3gp格式的视频

时间:2012-08-31 08:42:13

标签: objective-c ios video avfoundation avplayer

我使用MPMoviePlayerViewController播放格式为3gp的视频。某些视频可以播放,但其他视频无法播放。 MPMoviePlayerViewController将立即加载和结束,就像视频持续0秒一样。 我认为视频必须有斑点错误。但是我在专辑中使用了iphone的视频播放器,它可以播放视频! 所以我想也许MPMoviePlayerViewController不强大。我想尝试使用av​​foundation框架avplayer播放视频。在我的内容视图中添加一个子图层。失败.. 那让我抓狂!有没有人遇到过这个问题?

这是我的代码

-(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];
    }
}

1 个答案:

答案 0 :(得分:3)

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

根据the documentation

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

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

  • MPEG-4第2部分视频(简介)

如果您使用此课程播放音频文件,则会在播放音频时显示带有QuickTime徽标的白色屏幕。对于音频文件,此类支持高达48 kHz的AAC-LC音频和高达48 kHz的MP3(MPEG-1 Audio Layer 3)立体声音频。