В документации по флэш-памяти упоминается, что значения для seek () являются приблизительными.
Отчасти причина этого заключается в том, как видео сжимается. Он разбит на куски с ключевым кадром и набором дельта-кадров, которые просто содержат данные о том, что изменилось. Таким образом, общий размер файла для видео намного меньше, чем если бы каждый кадр содержал каждый пиксель.
Однако это также означает, что вы не можете просто пропустить ни один кадр, потому что многие кадры на самом деле не существуют. Проигрыватель должен найти ближайший предшествующий ключевой кадр, а затем начать воспроизведение вперед.
Чтобы иметь видео, которое может останавливаться и искать любой кадр, вы должны кодировать его с расстоянием ключевого кадра, равным единице. Попробуйте, и вы увидите, что у вас большой размер файла, но теперь вы можете заставить его воспроизводиться плавно назад.
Что касается неточности в поиске, то да. Это. Своего рода неряшливо. Бу-Adobe и все такое. Но им нужно найти компромисс между указанием игроку искать при каждом движении мыши, что может затормозить игрока, когда он вычисляет кефрам плюс дельта для каждого движения мыши, и фактически иметь возможность перетаскивать планку.
Это не блестяще, но вы можете написать свой собственный код из класса netstream и установить баланс по своему вкусу. Большую часть времени я нахожу их баланс полностью исправным, даже если было бы неплохо быть более точным.