我正在编写一个应用程序,它需要能够播放用户的所有视频,包括慢动作视频。我的代码适用于普通视频,但 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-推荐答案 strong>
尝试更改 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/
|