Відповідь на відповідне питання ...
Ні, недостатньо мати ці атрибути, щоб мати змогу автоматично відтворювати медіа зі звуком, вам потрібно зареєструвати у вашому документі жест користувача.
Але це обмеження дуже слабке: якщо ви отримали цей жест користувача на батьківському документі, а ваше відео завантажилося з iframe, ви можете його відтворити ...
Тож візьмемо для прикладу цю загадку , яка є лише
<video src="myvidwithsound.webm" autoplay=""></video>
При першому завантаженні, і якщо ви нікуди не натиснете, воно не запуститься, оскільки у нас ще не зареєстровано жодної події.
Але як тільки ви натискаєте кнопку "Виконати" , батьківський документ (jsfiddle.net) отримав жест користувача, і тепер відео відтворюється, хоча технічно він завантажений в інший документ.
Але наступний фрагмент, оскільки вимагає від вас фактично натиснути кнопку « Виконати фрагмент коду », автоматично відтворить.
<video src="https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.360p.webm" autoplay=""></video>
Це означає, що ваша об’ява, ймовірно, змогла відтворити, оскільки ви вказали користувачу жест на головну сторінку.
Тепер зауважте, що Safari та Mobile Chrome мають більш жорсткі правила, ніж це, і вам потрібно буде фактично запустити принаймні один раз play()
метод програмно на <video>
або <audio>
елемент від самого обробника подій користувача.
btn.onclick = e => {
// mark our MediaElement as user-approved
vid.play().then(()=>vid.pause());
// now we can do whatever we want at any time with this MediaElement
setTimeout(()=> vid.play(), 3000);
};
<button id="btn">play in 3s</button>
<video
src="https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.360p.webm" id="vid"></video>
І якщо вам не потрібно аудіо, просто не прикріплюйте його до своїх медіа, відео з лише відеодоріжкою також дозволяється автоматично відтворювати, а це зменшить використання пропускної здатності вашого користувача.