Я пытаюсь создать кнопку, позволяющую пользователю щелкнуть ее и остановить встроенное видео на YouTube. Однако всякий раз, когда я пытаюсь вызвать сам объект player для использования функции player.playVideo (), я получаю сообщение о том, что функция не определена.
Плеер определяется глобально и устанавливается при загрузке API YouTube (как в учебнике на их веб-сайте). Вызовы функций для playVideo прекрасно работают, когда события запускают их использование, но использование его вне тех просто не работает.
'''javascript
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
isReady=true;
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
playVideo();
}
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.pauseVideo();
}
function playVideo() {
player.playVideo();
}
//The function that is run when the button is pressed, only in this case
// stopVideo not work!
function togglePlay() {
if(isPlaying) {
stopVideo();
} else {
playVideo();
}
}
'''
Ожидается: воспроизведение видео с YouTube
Фактически: ошибка player.playVideo не является функцией