慢动作播放 MPMoviePlayerController
Slo-Mo playback MPMoviePlayerController
我正在编写一个应用程序,需要能够播放用户的所有视频,包括慢动作视频。我的代码适用于普通视频,但慢动作视频正在以正常速度播放(不是慢动作)。我已经用谷歌搜索并搜索了 SO 但无法找到任何代码示例来让它工作。
我通过执行以下操作获得资产 url:
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
.
,Slo-Mo 视频将以高 FPS 完整播放,而不是放慢速度
另请注意,MPMoviePlayerController 在 iOS9 中已弃用。您应该使用 AVPlayerViewController.
AVPlayerViewController 有一个 AVPlayer as its player. You can change AVPlayer's rate
property to play video in slow motion. If you want to edit the asset itself, please take a look at this question: How to do Slow Motion video in IOS
我正在编写一个应用程序,需要能够播放用户的所有视频,包括慢动作视频。我的代码适用于普通视频,但慢动作视频正在以正常速度播放(不是慢动作)。我已经用谷歌搜索并搜索了 SO 但无法找到任何代码示例来让它工作。
我通过执行以下操作获得资产 url:
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
.
另请注意,MPMoviePlayerController 在 iOS9 中已弃用。您应该使用 AVPlayerViewController.
AVPlayerViewController 有一个 AVPlayer as its player. You can change AVPlayer's rate
property to play video in slow motion. If you want to edit the asset itself, please take a look at this question: How to do Slow Motion video in IOS