ios - 慢动作播放 MPMoviePlayerController

标签 ios objective-c ios9

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

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

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();

任何帮助将不胜感激。

谢谢

雅各布

最佳答案

尝试更改 MPMediaPlayback Protocol 中声明的 currentPlaybackRate 属性。这是因为,如果您使用 PHVideoRequestOptionsVersionOriginal,慢动作视频将以高 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/

相关文章:

ios - 提醒不起作用

iphone - 将单元格的重新排序属性设置为 NO

ios - 按距离排序 Objective-C

ios - UICollectionViewCell 布局问题 iOS9

ios - 构建 TableView ,同时从完成 block 获取行数

ios - 传输安全已阻止明文 HTTP

ios - EXC_BREAKPOINT 崩溃的原因范围

ios - Swift-在UITableView中添加单元格

ios - 通过 AirDrop 发送 PDF 时命名文件

ios - BarButtonItem 上的箭头