我使用AVPlayer
方法:
- (void)seekToTime:(CMTime)time
toleranceBefore:(CMTime)toleranceBefore
toleranceAfter:(CMTime)toleranceAfter
completionHandler:(void (^)(BOOL finished))completionHandler
用于清理视频。 toleranceBefore
和toleranceAfter
均为0。
但是,当用户在结束后约5秒内擦洗到某些视频时,finished
始终等于NO
。
然后,播放器将处于不一致状态,pause
和play
方法无效。视频在传递到seekToTime
时被冻结。
这种情况在某些视频中始终存在,而在其他视频中则完全没有。
我有一个简单的if / else但是我不知道该放在其他地方让玩家再玩一次:
[_avPlayer seekToTime:CMTimeMakeWithSeconds(time, NSEC_PER_SEC)
toleranceBefore:toleranceBefore
toleranceAfter:toleranceAfter
completionHandler:^(BOOL finished) {
if(finished){
}
else {
// How to get the player to play again??
}
}];
就像我上面所说,我已经尝试将_avPlayer play
放在那里,但它没有播放。