【问题标题】:Display only a fraction of video using AVPlayer使用 AVPlayer 仅显示一小部分视频
【发布时间】:2013-09-10 12:34:30
【问题描述】:
我有一个要求,我使用 AVPlayer 显示媒体库视频 (AVAsset),并使用 UI 中的自定义滑块更新视频中的当前帧。
但是,我正在寻找的是如何在不实际修剪视频的情况下将滑块与视频联系起来。
我想显示附加到滑块的一小部分视频,即说我有一个持续时间为 10 秒的视频。我希望滑块连接到 3-6 秒,这意味着如果滑块在开始时它应该在视频中显示 3.0 秒的帧,如果滑块在结束时它应该在视频中显示第 6 秒的帧.
简单地说,对于用户来说,它应该显示为视频的总时长仅为 3 秒。
附:上面的问题有很多,但我已尽力简化我的查询。
【问题讨论】:
标签:
iphone
ios
ios5
video
avplayer
【解决方案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];
}
}