使用AVPlayer仅显示一小部分视频

时间:2013-09-10 12:34:31

标签: iphone ios ios5 video avplayer

我要求使用AVPlayer显示媒体库视频(AVAsset),并使用UI中的自定义滑块更新视频中的当前帧。 但是,我正在寻找的是如何将滑块与视频绑定而不实际修剪视频。
我想显示附加到滑块的一小部分视频,即说我有一段持续时间为10秒的视频。我希望滑块连接到3-6秒,这意味着如果滑块处于开始状态,它应该在视频中显示3.0秒的帧,如果滑块在结束时它应该在视频的第6秒显示帧。

简单地说,对于用户来说,它应该显示为视频总持续时间为3秒。

P.S。上述问题有很多内容,但我已尽力简化查询。

1 个答案:

答案 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];
    }
}