У меня есть простой метод остановки:
player.seek(to: .zero)
player.pause()
Затем с помощью DisplayLink
я проверяю, доступен ли новый кадр:
let currentTime = player.currentItem!.currentTime()
if videoOutput.hasNewPixelBuffer(forItemTime: currentTime) {
if let pixelBuffer = videoOutput.copyPixelBuffer(forItemTime: currentTime, itemTimeForDisplay: nil) {
// ...
}
}
Он отлично работает для обычныхВоспроизведение, хотя при остановке я не получаю первый кадр.
Любая идея, почему hasNewPixelBuffer
с currentTime
из 0.0
равно false
?
Обновить
Протестировано с другим видео, и оно работает ...