Спасибо. Это решило мою проблему.

не работай:

Если я добавлю видео-тег с «autoplay» (см. Ниже) в шаблон компонента Angular 2+ с целью автоматического воспроизведения на мобильном устройстве:

<video muted autoplay>
    <source src="path/to/video.mp4" type="video/mp4" />
</video>
какаяделает работай:Перемещение его в index.html (вне компонента Angular)

Добавление его к телу из компонента:

window.addEventListener('load', () => {
    document.body.innerHTML += "<video autoplay muted loop>\n" +
                               "    <source src=\"path/to/video.mp4\" type=\"video/mp4\" />\n" +
                               "</video>";
});
Включение видео в шаблон компонента, включение «пользовательских элементов управления» и ручное прикосновение к кнопке воспроизведения на видео (т. Е. Нет автоматического воспроизведения)Теории:

Я не думаю, что это проблема неверного пути к видео, так как я могу вручную нажать кнопку «Воспроизвести».

Согласно сВот а такжеВотАвтовоспроизведение на мобильном устройстве должно быть разрешено, если (1) видео отключено, и (2) видео «видно». Я читал, что «видимый» в этом контексте более или менее определен как «прикрепленный к DOM», а не «display: none», по крайней мере, в нескольких местах.

Моя лучшая теория заключается в том, что Angular 2+ прикрепляет компонент к некоему «Shadow DOM» (или аналогичному), в результате чего мобильный Chrome не думает, что он виден. Я попытался установить компонент вencapsulation: ViewEncapsulation.None чтобы увидеть, если это имеет значение, но тот же результат.

Кроме того, если я пытаюсь настроить прослушиватель событий на «загруженные» или «canplaythrough» события и вручную вызватьvideoElement.play()тогда я получаю:DOMException: play() can only be initiated by a user gesture, Если я сделаю тот же самый вызов функции в консоли devtools (привязывая к мобильному устройству через USB), то онделает играть.

Последние мысли:

Кажется, что Angular, скорее всего, мешает мне. Существуют ли какие-либо известные настройки или обходные пути Angular, которые можно использовать для автоматического воспроизведения видео в компоненте Angular 2+ на Android Chrome? Спасибо за любую помощь.

(p.s .: Есть около миллиона вопросов к S.O. и в других местах об автоматическом воспроизведении видео на мобильном Chrome, но ни один из них, похоже, не решает проблему выполнения этого в компоненте Angular или подобном)

Ответы на вопрос(5)

Ваш ответ на вопрос