我还没有找到解决问题的方法,希望有人可以帮助我。
假设:
带有AVUrlAsset(HTTP直播)的AVPlayer实例
m3u8规范:
EXT-X-VERSION:3
EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:0.96000, 178200
segment-00000.ts
每个段都以IDR帧开头(因此.ts是对齐的,至少我希望如此)
seekTo与CMTimeMakeWithSeconds(时间刻度= 1)一起使用,kCMTimeZero准确度
currentPlayerItem.duration和asset.duration设置了无穷大标志
让我们假设我们处于200的第二个100,我们想要向前一秒和向后一秒
问题:
它看起来有特定的框架位置,向后搜索操作只会减少当前时间!! AVPlayer实例的值,但没有别的
我多次向后搜索(-1秒)并且玩家显示旧图片
在我多次寻找(看到错误的位置)之后,玩家最终继续真正寻求倒退。但是现在currentTime就像-40秒,显示图片的PTS就像-3秒。
info:seekTo完成并且finishHandler被调用,完成= YES,总是!
问题
最好的反对!
用户请求的代码:
AVPlayer* avPlayerStart = [[AVPlayer alloc] init];
_mStartPlayer = avPlayerStart;
[_mPreviewStartView setPlayer:_mStartPlayer];
AVURLAsset* anAssest= [[AVURLAsset alloc]initWithURL:url options:nil];
_mCurrentPlayerItemStart = [AVPlayerItem playerItemWithAsset:anAssest];
[_mStartPlayer replaceCurrentItemWithPlayerItem:_mCurrentPlayerItemStart];
//operation:
taggingStart -= 1;
[_mStartPlayer seekToTime:CMTimeMakeWithSeconds(taggingStart, 1) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];