Вопрос по html5 – Chrome HTML5 Видео перестают работать, если открыто слишком много вкладок - Проблема с памятью?

7

Я использую jQuery для динамической записи<video> объекты и запуск videojs для их инициации. После воспроизведения видео, иногда, когда я пытаюсь воспроизвести его снова, оно просто не воспроизводится, и с этого момента, даже после обновления страницы, видео не будет воспроизводиться. Каждый раз<video> объект рендерится, но видео просто не воспроизводится. На консоль ничего не написано. Похоже, что нет никаких ошибок. Перезапуск Chrome решает проблему, но только на мгновение. После воспроизведения нескольких видео проблема возвращается снова.

Я обнаружил, что закрытие других вкладок в Chrome действительно решает проблему, поэтому это, похоже, проблема с памятью.

Я использую Chrome 19.0.1084.46

Я имел дело с подобной проблемой с изображениями. Похоже, что Chrome перепроизводит ресурсы. Registered User

Ваш Ответ

4   ответа
1

Стю правильно. Но иногда, по моему опыту, Chrome игнорирует preload = & quot; none & quot; атрибут и идет вперед и открывает соединение в любом случае. У меня была большая проблема с этим при разработке сайта, на котором было много небольших видео. Соединения заблокировали остальную часть содержимого (изображения, пользовательские шрифты (а когда пользовательские шрифты задерживаются, текст даже не отображается)) Моим решением было создать собственный предварительный загрузчик, который загружает изображения. Это позволило мне контролировать, по крайней мере, когда загружались изображения (что было самым важным аспектом с точки зрения дизайна).

Это решило проблему с изображениями, не показывающими, но проблема все еще осталась. Поэтому наилучшим решением является настройка поддоменов, указывающих на один и тот же сервер, например: v1.server.com, v2.server.com и т. Д. Это означает, что вам больше не нужно перемещать файлы, и вы получаете преимущество, позволяя браузерам иметь более открытые соединения. Остерегайтесь увеличения времени поиска DNS, хотя.

1

Eстьизвестная ошибка с хромом. Он не будет воспроизводить одно и то же видео на нескольких вкладках одновременно. Вероятно, это то, с чем вы сталкиваетесь, если вы разработчик и у вас есть страница, открытая одновременно на двух вкладках.

На момент написания этой статьи эта ошибка была известна почти 5 лет назад. Не стесняйтесь посетитьСообщение об ошибке хрома и пометить вопрос. Надеюсь, это повысит приоритет разработчиков Chrome.


Тем временем, обходной путь должен использовать случайный параметр запроса в вашем src видео. Например, вместо<video src="vid.mp4">использовать<video src="vid.mp4?_u=1253412">, Это нарушит механизм кэширования в Chrome и позволит передавать одно и то же видео на две разные вкладки одновременно.

Благослови вас, сэр! преднагрузки = & APOS; ни & APOS; Я был на полпути к этому, но добавив случайный параметр запроса, я не буду получать письма от службы поддержки.
0

У меня была похожая, но связанная с этим проблема, которую я могу немного расширить здесь.

У меня было 14 разных небольших видео на странице, но одновременно было доступно только 2. Установка предварительной нагрузки = "нет" не удалось устранить проблему, поэтому я также использовал атрибут data для хранения src и удалил src для всех видео, которые в данный момент не просматриваются.

17

Сколько именноvideo теги у вас есть? На что они похожи? Они включаютpreload='none' атрибут? Все ли исходные видео находятся на сервере?

Я спрашиваю, потому что, если у вас есть более шестиvideo теги на одной странице, указывающие на один и тот же исходный сервер, тогда вы могли испытывать «разрыв соединения»:

  • Chrome allows only six open connections to a single server (based on DNS name in the URL)
  • the html5 video tag's preload attribute default value is 'auto'
  • Chrome's auto behavior is to preload some data and leave the connection open ready to pull more data for the video

Таким образом, при наличии более шести тегов видео на одной странице, указывающих на один сервер, видео не будет воспроизводиться. Чтобы решить эту конкретную проблему, установитеpreload приписывать'none'

У меня была именно эта проблема, и я изолировал ее от возможности вставлять через консоль изображение в тег body, пока на страницу не было добавлено 6 видео. Я думал, что схожу с ума, но потом наткнулся на этот пост. Очень четкое объяснение Стю.
БЛАГОДАРЮ ВАС!!! Это невероятное поведение со стороны Chrome. Я пытался отследить эту проблему буквально МЕСЯЦЕВ !!! Google должен это исправить.

Похожие вопросы