OGeek|极客世界-中国程序员成长平台

标题: ios - 慢动作播放 MPMoviePlayerController [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:14
标题: ios - 慢动作播放 MPMoviePlayerController

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

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

PHVideoRequestOptions *options = [PHVideoRequestOptions new];
options.deliveryMode =  PHVideoRequestOptionsDeliveryModeHighQualityFormat;
options.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestAVAssetForVideo:asset optionsptions 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();

任何帮助将不胜感激。

谢谢

雅各布



Best Answer-推荐答案


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

还请注意,MPMoviePlayerController 在 iOS 9 中已被弃用。相反,您应该使用 AVPlayerViewController .

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

关于ios - 慢动作播放 MPMoviePlayerController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869390/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4