получать текущее время видео на YouTube во время воспроизведения - PullRequest
0 голосов
/ 03 ноября 2018

Когда я играю видео на Youtube, как это:

https://www.youtube.com/tv?#/watch/video/control?v=d1-VK12FZhs&resume&t=0m4s

Я вижу время воспроизведения и продолжительность в нижней части видео.

Я могу знать текущее время, играя в поисках этого на странице:

0: 11

Через некоторое время эта информация скрыта, пока я снова не наведу указатель мыши на видео.

Когда показывается информация, я могу получать текущее значение ytp-time, обновляемое каждую секунду. Когда информация скрыта, это значение не обновляется. Как узнать текущее время, пока информация скрыта?

Я использую это внутри расширения Chrome с этим кодом:

document.addEventListener("spfdone", process); 
document.addEventListener("DOMContentLoaded", process); 

function process(){ 
stop(); 
start(); 
} 
window.onbeforeunload = function () { 
stop(); 
}; 

function start(){ 

x2 = setInterval(function() { 

// here is the place to use the solution i'm looking for

},1000); 
} 

function stop(){ 
}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Вот полное решение для того, что вы хотите отобразить:

var player = document.getElementById('movie_player');
var time = player.getCurrentTime();
var sec_num = parseInt(time, 10);
var hours   = Math.floor(sec_num / 3600);
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
var seconds = sec_num - (hours * 3600) - (minutes * 60);
if (hours < 10)
   hours = '0' + hours;
if (minutes < 10)
   minutes = '0' + minutes;
if (seconds < 10)
   seconds = '0' + seconds;
alert(hours + ':' + minutes + ':' + seconds);
0 голосов
/ 04 ноября 2018

Согласно YouTube iframe api вы можете использовать: getCurrentTime () .

Достаточно написать в консоли chrome следующий код:

document.querySelector('.video-stream').getCurrentTime()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...