2017-01-14 2 views
0

В соответствии с Google Developers вы можете автоматически воспроизводить видео HTML5 на мобильных устройствах, пока атрибут muted настроен на включение.Экран беззвучного автовоспроизведения не работает на Android

Я использую the following code для его проверки.

<script> 
    const video = document.createElement('video'); 
    // TODO: Include video in DOM to test the change. 
    video.addEventListener('playing', event => alert('The video is playing off-screen.')); 
    video.autoplay = 'true'; 
    video.muted = 'true'; 
    video.src = 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4'; 
</script> 

Обратите внимание, что я не включая video элемент в DOM (я пост-обработки на нем с помощью canvas поэтому необходимо быть не показан). Я получаю IntersectionObserver.observe (target): целевой элемент не является потомком корняwhich is caused by muted being set on the video but it not being in DOM.

На рабочем столе Chrome 55.0.2883.87 м (64-бит) показан alert. На мобильном Chrome 55.0.2883.91 (navigator.userAgent) это не так. Когда video находится в DOM, обе версии работают. В мобильном браузере нет дополнительных предупреждений по сравнению с настольным.

Это ошибка в мобильном Chrome?

+1

«Воспроизведение начнется автоматически для видеоэлемента *, когда оно появится в поле зрения *, если установлены оба режима автовоспроизведения и приглушения ...» – Offbeatmammal

+0

Ха, это неловко. В следующий раз нужно отключить лазерное зрение моего кода, прежде чем задавать вопрос. Пожалуйста, опубликуйте комментарий в качестве ответа, чтобы я мог его принять. BTW Я понял, что 'display: none' не считается как просмотр, а' visibility: hidden'. –

ответ

1

Из docs (курсив мой): «Воспроизведение начнется автоматически видеоэлемент , когда он попадает в поле зрения если оба автозапуск и приглушенные устанавливаются ...»

(BTW хороший находку за Ваш комментарий что display: none не считается находящимся на виду, но visibility: hidden делает

Смежные вопросы