Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Slo Mo播放MPMoviePlayerController_Ios_Objective C_Ios9 - Fatal编程技术网

Ios Slo Mo播放MPMoviePlayerController

Ios Slo Mo播放MPMoviePlayerController,ios,objective-c,ios9,Ios,Objective C,Ios9,我正在编写一个应用程序,需要能够播放用户的所有视频,包括Slo Mo视频。我的代码可以正常播放视频,但Slo Mo视频是以正常速度播放的(不是慢动作)。我已经在谷歌上搜索过了,但还没有找到任何代码示例来实现这个功能 我通过执行以下操作获取资产url: PHVideoRequestOptions *options = [PHVideoRequestOptions new]; options.deliveryMode = PHVideoRequestOptionsDeliveryModeHighQ

我正在编写一个应用程序,需要能够播放用户的所有视频,包括Slo Mo视频。我的代码可以正常播放视频,但Slo Mo视频是以正常速度播放的(不是慢动作)。我已经在谷歌上搜索过了,但还没有找到任何代码示例来实现这个功能

我通过执行以下操作获取资产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();
任何帮助都将不胜感激

谢谢


Jacob

尝试更改中声明的
currentPlaybackRate
属性。这是因为如果使用
phvideorequestoptions versionoriginal
,Slo Mo视频将以高FPS播放,而不是减慢速度

还请注意,iOS 9中不推荐使用MPMoviePlayerController。相反,您应该使用


avplayervewcontroller的播放器为。您可以更改AVPlayer的
rate
属性以慢动作播放视频。如果您想编辑资产本身,请查看以下问题:

谢谢。我没有意识到MPMoviePlayerController不受欢迎(我正在开发一个从iOS 5开始就存在的应用程序),所以我将尝试使用avplayervewcontroller。我希望它足够智能,可以自动处理Slo Mo,而无需指定播放速率。@JacobJoz我编辑了我的答案,以包含有关AVPlayerViewController的信息。我已经实现了AVPlayerViewController,并将速率设置为0.0001。但是,它的播放速度仍然不如标准的照片应用程序慢。我尝试过不同的值,比如0.000001,但没有任何区别,就好像在被忽略之前,该值可以降到多低有一定的限度。@JacobJoz我明白了。。。不知道为什么它不会低于一定的速度,即使视频是240 fps。。。好吧,我最好的想法是创造一个可变的组合。可以从我在答案末尾所链接的问题中找到说明。我不确定我是否想继续深入调查。这并不是我应用程序的重要部分。至少现在它以“慢动作”的形式播放,我认为现在已经足够好了。谢谢你的帮助。