Прежде чем пометить это как дубликат, пожалуйста, прочитайте детали.
У меня есть проигрыватель YouTube, который автоматически отключает звук внутри iframe, у меня есть кнопка включения звука, и я нажимаю unMute () при нажатии кнопки.Однако я получаю эту ошибку:
Не удалось включить звук, и вместо этого элемент был приостановлен, потому что пользователь не взаимодействовал с документом до
, это код проигрывателя:
try {
new YT.Player('ytplayer', {
height: '100%',
width: '100%',
videoId: this.config.mediaId,
playerVars: {
modestbranding : 1,
rel : 0,
showinfo : 0,
autoplay: 1,
color: 'white',
rel: 0,
playsinline: 1,
controls: 0
},
events: {
onReady: this.onPlayerReady.bind(this)
}
});
} catch(e) {
showErrorScreen(e);
}
onPlayerReady(event) {
this.playerRef = event.target;
this.playerRef.mute();
this.playerRef.playVideo(); // because autoplay: 1 sometimes does not work
}
...
const unmute = (event) => {
playerRef.unMute();
state.muted = false;
updateVolumeControls();
};
Здесь ссылка на страницу:
https://video.inpwrd.net/college-prep-dont-go-it-alone/48ebe783-bcc4-4b96-9ba5-aff3db5f13df
За пределами iframe это работает.Это определенно ошибка в коде плеера YouTube.Я придерживаюсь автозапуска приглушенной политики.Я считаю, что у них есть предположение, что плеер всегда находится в корневом документе.Это трассировка стека:
Не удалось включить звук, и вместо этого элемент был приостановлен, поскольку пользователь раньше не взаимодействовал с документом
g.h.xk @ base.js:6951
jya @ base.js:4586
yQ @ base.js:4585
Fna @ base.js:3091
g.h.unMute @ base.js:6718
a.F.(anonymous function) @ base.js:3082
g.h.handleExternalCall @ base.js:6698
a.C.(anonymous function) @ base.js:3086
(anonymous) @ www-embed-player.js:526
k.la @ www-embed-player.js:609
k.La @ www-embed-player.js:598
ii.B @ www-embed-player.js:594
Пожалуйста, не предлагайте хакерские решения, которые работают сегодняи перестань работать завтра.