У меня есть iframe of YouTube /Vimeo, и я бы знал, играет ли видео, когда моя функция выполняется. И у меня есть кнопка, которая пауза и скрывает мою iframe < /p>
Я нашел это с помощью youtube api: getPlayerState () < /code>,
и getPaused () < /code> от vimeo API.
Я не хочу использовать событие Click, я хотел бы узнать PauseState каждый раз! />https://developer.vimeo.com/player/sdk/ ... ext-tracks написано
< /code>
function loadVideo(id) {
var videoPlayer = document.getElementById('videoPlayer');
var player = document.getElementById('player');
var url = player.src;
switch (id) {
case 1:
url = "https://www.youtube.com/embed/n1tswFfg-Ig?enablejsapi=1";
break ;
case 2:
url = "https://player.vimeo.com/video/237596019?api=1";
break ;
default:
callPlayer("pauseVideo");
break ;
function callPlayer(func, args) {
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; ++i) {
if (iframes) {
var src = iframes.getAttribute('src');
if (src) {
if (src.indexOf('youtube.com/embed') != -1) {
var player = new YT.Player(iframes, {});
//2 lines below doesn't work
var value = player.getPlayerState();
alert('value');
iframes.contentWindow.postMessage(JSON.stringify({
'event': 'command',
'func': func,
'args': args || []
}), "*");
}
if (src.indexOf('player.vimeo.com/video') != -1) {
var player = new Vimeo.Player(iframes);
switch (func) {
case 'pauseVideo':
//always show 'false', never 'true'
if (player.getPaused() == true ) {
alert('true');
}else {
alert('false');
}
player.pause();
break ;
default:
break ;
}
}
}
}
}
}
< /code>
i use alert to know if something is working, and with this code, the youtube alert does not work , and the vimeo alert always show 'false'.
Thanks for your help
Подробнее здесь: https://stackoverflow.com/questions/574 ... -and-vimeo