AVPlayer反向播放

8

如何让AVPlayer对象倒放视频内容?AVPlayerItem类有一个名为“reversePlaybackEndTime”的属性,这使我认为倒放播放是可能的,但似乎在文档中找不到实际操作的方法。

2个回答

7
你可以像这样反向播放,因为queuePlayerAVPlayer

首先到达视频结尾

CMTime durTime = self.queuePlayer.currentItem.asset.duration;
durationTime = CMTimeGetSeconds(durTime);
//NSLog(@"durationTime :%f : %f",durTime);
if (CMTIME_IS_VALID(durTime))
    [self.queuePlayer seekToTime:durTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
else
    NSLog(@"In valid time");

现在将 AVPlayerRate 设置为负值。

[self.queuePlayer setRate:-1];

2
当您向AVPlayer对象发送“play”消息时,它会开始播放,这相当于将速率属性设置为1.0。您尝试将该属性设置为-1.0了吗?我目前没有Mac来测试它,所以如果这不起作用,我将删除我的答案。

根据苹果的文档,速率可以在0.0和1.0之间。-1.0不是有效的值。https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html#//apple_ref/occ/instp/AVPlayer/rate - Jake Johnson
2
一个值为0.0会暂停视频,而一个值为1.0会以自然速率播放当前项目。如果相关的播放器项返回AVPlayerItem属性canPlaySlowForward或canPlayFastForward的true,则可以使用除0.0和1.0之外的速率。如果播放器项返回canPlayReverse、canPlaySlowReverse和canPlayFastReverse属性的true,则支持负速率值范围。 - shim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接