Я пытаюсь получить продолжительность видео внутри пользовательской функции конструктора видео. Это проблема объема? Как бы я продолжил и сделал это эффективно? Видео отображается правильно, я просто не могу получить доступ к его продолжительности вне функции.
Я предполагаю, что это простая проблема, общая для начинающих. Может быть, что касается использования addEventListener?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>X</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function(){
var video_1 = new CustomVideo('0.mp4');
video_1.createVideo();
var videoDuration = video_1.durationVideo();
console.log('durationVideo outside function = ' + videoDuration);
});
function CustomVideo(videoSrc){
this.videoSrc = videoSrc;
this.createVideo = createVideo;
this.durationVideo = durationVideo;
var myVideo;
var id_rand;
var id_myVideo;
function createVideo(){
myVideo = document.createElement('video');
id_rand = Math.floor(Math.random() * 999999);
id_myVideo = 'myVideo' + String(id_rand);
document.body.appendChild(myVideo);
myVideo.id = id_myVideo;
myVideo.src = videoSrc;
}
function durationVideo(){
console.log('id_myVideo inside durationVideo =' + id_myVideo);
var v = document.getElementById(id_myVideo);
v.addEventListener( "loadedmetadata", function (e) {
console.log('durationVideo inside func = ' + v.duration);
return v.duration;
}, false );
}
}
</script>
</head>
<body>
</body>
</html>
Я ожидаю получить продолжительность видео, оценивая функцию durationVideo.