【问题标题】:Slo-Mo playback MPMoviePlayerController慢动作播放 MPMoviePlayerController
【发布时间】:2016-04-24 11:44:57
【问题描述】:

我正在编写一个应用程序,它需要能够播放用户的所有视频,包括慢动作视频。我的代码适用于普通视频,但 Slo-Mo 视频正在以正常速度(不是慢动作)播放。我已经用谷歌搜索并搜索了 SO,但无法找到任何代码示例来使其正常工作。

我通过执行以下操作获取资产 url:

PHVideoRequestOptions *options = [PHVideoRequestOptions new];
options.deliveryMode =  PHVideoRequestOptionsDeliveryModeHighQualityFormat;
options.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
    if ([asset isKindOfClass:[AVURLAsset class]])
        completion(((AVURLAsset *)asset).URL);
}];

然后我将 URL 传递给 MPMoviePlayerController:

_moviePlayer.view.frame = self.view.frame;
_moviePlayer.allowsAirPlay = true;
_moviePlayer.shouldAutoplay = true;
_moviePlayer.movieSourceType = MPMovieSourceType.File;
_moviePlayer.scalingMode = MPMovieScalingMode.AspectFit;
_moviePlayer.controlStyle = MPMovieControlStyle.Default;
_moviePlayer.view.autoresizingMask = [UIViewAutoresizing.FlexibleHeight, UIViewAutoresizing.FlexibleWidth];
_moviePlayer.contentURL = url!;
_moviePlayer.prepareToPlay();
_moviePlayer.play();

任何帮助将不胜感激。

谢谢

雅各布

【问题讨论】:

    标签: ios objective-c ios9


    【解决方案1】:

    尝试更改MPMediaPlayback Protocol 中声明的currentPlaybackRate 属性。这是因为如果您使用PHVideoRequestOptionsVersionOriginal,Slo-Mo 视频将以高 FPS 完全播放,而不是减慢速度。

    另请注意,MPMoviePlayerController 在 iOS 9 中已弃用。您应改为使用 AVPlayerViewController

    AVPlayerViewController 有一个AVPlayer 作为它的播放器。您可以更改 AVPlayer 的 rate 属性以慢动作播放视频。如果您想编辑资产本身,请看一下这个问题:How to do Slow Motion video in IOS

    【讨论】:

    • 谢谢。我没有意识到 MPMoviePlayerController 已被弃用(我正在开发一个自 iOS 5 以来就存在的应用程序),所以我将尝试使用 AVPlayerViewController 代替。我希望它足够聪明,可以自动处理 Slo-Mo,而无需指定播放速率。
    • @JacobJoz 我编辑了我的答案以包含有关 AVPlayerViewController 的信息。
    • 我已经实现了 AVPlayerViewController,并将速率设置为 0.0001。但是,它的播放速度仍然不如标准照片应用程序那么慢。我尝试了不同的值,例如 0.000001,但没有任何区别,就好像在忽略该值之前可以达到多低一样。
    • @JacobJoz 我明白了......不知道为什么即使视频是 240 fps,它也不会低于特定速度......好吧,我最好的想法是创建一个可变组合.可以从我在答案末尾链接的问题中找到说明。
    • 不确定我是否愿意不厌其烦地进一步调查。这并不是我的应用程序的重要组成部分。至少它现在以“慢动作”播放,我认为现在已经足够好了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2013-10-10
    相关资源
    最近更新 更多