При запросе второго видеопотока в Chrome вместо него воспроизводится первое видео
Разработал приложение в.NET Core для потоковой передачи видео контента. Прекрасно работает с элементом видео html5, функцией 206 частичных пакетов (можно искать правильно). После того, как я пытаюсь передать новое видео, Chrome продолжает воспроизводить первое видео.
У меня нет этой проблемы в IE или Firefox, и, честно говоря, раньше нормально работал в Chrome в прошлом году. Я подозреваю, что они недавно что-то изменили в Chrome?
Кроме того, при обновлении страницы программно, сложно или с сбросом кэша все равно будет воспроизводиться только 1-е видео. Только при открытии новой вкладки Chrome она, кажется, "сбрасывается" и позволяет мне воспроизводить 2-е видео и наоборот.
Во время воспроизведения "неправильного" 1-го видео, если я загружаю напрямую через значок проигрывателя Chrome HTML5 в правом нижнем углу, оно загружает правильное 2-е видео, что еще более странно!
Вот больше информации:
- Chrome - последняя версия 66.0
- Когда я пытаюсь транслировать 2-е видео, 206 частичных пакетов, поступающих через сеть, являются данными для 2-го видео, поэтому я могу подтвердить, что сервер отправляет 2-е видео
- Эта проблема НЕ возникает, если во время воспроизведения 1-го видео отправляется второй пакет 206 (как, пока я не ищу). Если я не ищу, я могу перейти между 1-м и 2-м видео без проблем. Как только запрашивается второй пакет 206, кажется, что Chrome становится чертовски из-за прилипания с первым видео только во время воспроизведения.
- Существует только 1 тег видео плеера, но я могу выбрать / выбрать видео из списка. Я играю только одно видео за раз.
1 ответ
ФИКСИРОВАННЫЙ. Вот что вызвало проблему:
Мой запрос на видео был GET to /Download? Uid=12345, который, в свою очередь, выполняет перенаправление на /GetItem (12345 будет храниться в cookie).
Последующие запросы к частичным 206 пакетам также будут GET /GetItem. Немного прочитал, перепробовал все в книге и понял, что Google Chrome может понадобиться видеть разные URL-адреса для каждого нового запроса, иначе он будет воспроизводить старый кэшированный поток.
РЕШЕНИЕ:
Я изменил свое перенаправление на /GetItem? Uid=someRandomNumber (который меняется каждый раз, когда вызывается это действие), и теперь видео будет воспроизводиться правильно, когда я нажимаю между ними.