我正在编写一个应用程序,需要能够播放所有用户的视频,包括Slo-Mo视频。我的代码适用于普通视频,但是Slo-Mo视频正在以正常速度播放(不是慢动作)。我用谷歌搜索并搜索了SO但是却找不到任何代码示例来让它工作。
我通过执行以下操作获取资产网址:
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();
非常感谢任何帮助。
由于
雅各
答案 0 :(得分:3)
尝试更改MPMediaPlayback Protocol中声明的currentPlaybackRate
属性。这是因为如果您使用PHVideoRequestOptionsVersionOriginal
,Slo-Mo视频将以高FPS完全播放,而不是放慢速度。
另请注意,在iOS 9中不推荐使用MPMoviePlayerController。您应该使用AVPlayerViewController。
AVPlayerViewController有一个AVPlayer作为播放器。您可以更改AVPlayer的rate
属性以慢动作播放视频。如果您想编辑资产本身,请查看以下问题:How to do Slow Motion video in IOS