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