Я работаю над приложением, которое передает видео через HTTP. AVPlayer используется для воспроизведения видео. Я использую AVPlayerItem и метод selectMediaOption для переключения между определенными видеопотоками (в источнике три потока).
Моя проблема заключается в том, что когда я переключаюсь между параметрами мультимедиа, я вызываю seekToTime: toleranceBefore: toleranceAfter:
, чтобы пропустить новое видео до того же момента времени, что и видео, с которого я переключаюсь. Проблема в том, что это работает ненадежно. Видео обычно переходит к точке за несколько секунд до запрошенного времени, даже несмотря на то, что свойство AVPlayerItem currentTime сообщает запрошенное время. Я передаю kCMTimeZero как дляleranceBefore, так и дляleranceAfter.
Еще кое-что, о чем стоит упомянуть, это то, что это происходит только с одним конкретным медиапотоком. У меня есть другой медиапоток, который не показывает проблему.
Может ли кто-нибудь предложить, что может быть проблемой здесь?
AVPlayer
занимает некоторое время, поэтому вы можете указать допуск. Я не использовалAVPlayer
какое-то время, но я считаю, что если вы укажетеkCMTimeZero
в качестве допуска, он будет проигнорирован, потому что переход к этому точному времени займет слишком много времени. Я предлагаю вам поэкспериментировать с несколькими различными допусками, чтобы увидеть, что является лучшим опытом. - person EmilioPelaez   schedule 20.04.2016