菜鸟教程小白 发表于 2022-12-13 15:59:06

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


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

<p>这是我的代码</p>

<pre><code>-(void) playMovieWithSDK: (NSURL*) movieUrl
{
if ([[ systemVersion] doubleValue] &gt;= 3.2) {
    MPMoviePlayerViewController *mSdk4Player = [ initWithContentURL:movieUrl];
    mSdk4Player.navigationController.navigationBar.tag = 1000;
    if (mSdk4Player) {
      ;
      mSdk4Player.moviePlayer.scalingMode= MPMovieScalingModeAspectFit;
      mSdk4Player.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
      mSdk4Player.moviePlayer.shouldAutoplay = YES;
      ;

      [addObserver: self
                                                selector: @selector(movieFinishedCallback:)
                                                    name: MPMoviePlayerPlaybackDidFinishNotification
                                                object: mSdk4Player.moviePlayer];
    }
}
else if ([[ systemVersion] doubleValue] &lt; 3.2) { // sdk 3.0 播放器
    MPMoviePlayerController* mSdk3player = [ initWithContentURL: movieUrl];
    mSdk3player.scalingMode = MPMovieScalingModeAspectFit;
    [addObserver: self
                                          selector: @selector(movieFinishedCallback:)
                                                name: MPMoviePlayerPlaybackDidFinishNotification
                                              object: mSdk3player];
    ;
    }
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您尝试播放的视频可能与 MPMoviePlayerController 支持的基本编解码器不兼容。 </p>

<p>根据<a href="http://developer.apple.com/library/IOs/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006953-CH3-SW20" rel="noreferrer noopener nofollow">the documentation</a> :</p>

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

<ul>
<li><p>H.264 Baseline Profile Level 3.0 视频,最高 640 x 480 @ 30 fps。
(Baseline 配置文件不支持 B 帧。)</p></li>
<li><p>MPEG-4 第 2 部分视频(简单配置文件)</p></li>
</ul>

<p>如果您使用该类播放音频文件,它会在播放音频时显示带有 QuickTimeLogo 的白屏。对于音频文件,此类支持最高 48 kHz 的 AAC-LC 音频和最高 48 kHz 的 MP3(MPEG-1 音频层 3)立体声音频。</p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - MPMoviePlayerController 无法播放某些 3gp 格式的视频,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12211802/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12211802/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - MPMoviePlayerController 无法播放某些 3gp 格式的视频