我要求使用AVPlayer显示媒体库视频(AVAsset),并使用UI中的自定义滑块更新视频中的当前帧。
但是,我正在寻找的是如何将滑块与视频绑定而不实际修剪视频。
我想显示附加到滑块的一小部分视频,即说我有一段持续时间为10秒的视频。我希望滑块连接到3-6秒,这意味着如果滑块处于开始状态,它应该在视频中显示3.0秒的帧,如果滑块在结束时它应该在视频的第6秒显示帧。
简单地说,对于用户来说,它应该显示为视频总持续时间为3秒。
P.S。上述问题有很多内容,但我已尽力简化查询。
答案 0 :(得分:1)
1)寻求开始位置:
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(self.startTime, preferredTimeScale);
[mainPlayer seekToTime:inTime];
2)设置一个计时器:
_EndOFRegionCheckTimer = [NSTimer scheduledTimerWithTimeInterval:0.10f
target:self
selector:@selector(_checkEndPassedFired)
userInfo:nil
repeats:YES];
3)在计时器点火事件中检查当前位置并在必要时停止播放:
- (void)_checkEndPassedFired {
AVPlayerItem *currentItem = mainPlayer.currentItem;
if ((double)currentItem.currentTime.value/currentItem.currentTime.timescale>self.stopTime)
{
[mainPlayer pause];
}
}