0

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

简而言之,对于用户来说,它应该显示为视频的总持续时间仅为 3 秒。

PS 上面的问题有很多,但我已尽力简化我的查询。

4

1 回答 1

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];
    }
}
于 2014-02-18T13:23:50.397 回答