我的目标是在播放视频时播放视频的src
。
我目前有以下代码:
<!doctype html>
<html>
<head>
</head>
<body>
<video width="320" height="240" controls>
<source src="video.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
<script type='text/javascript'>
var vid = document.getElementsByTagName('video')[0];
vid.addEventListener('play', function() {
console.log('video source:',this.src);
}, false);
</script>
</body>
</html>
所以我的第一个问题是this.src
不起作用;它输出一个空字符串。我认为这是因为src
实际上不是video
标记的一部分,而是在source
子标记中。
然后我尝试将以下内容添加到我的函数中:
for (var p in this) {
console.log(p, this[p]);
}
我这样做是为了看看我是否能找到引用它的任何属性..但是我没有看到任何直接引用它的东西?那么获取源真正获取子source
节点的唯一方法是什么?如果是......那么......
我的第二个问题,我如何确定实际使用哪个src
属性来播放视频?如果video.mp4
实际上用于播放视频,我想知道该值,但如果video.ogg
实际上用于播放视频,我想知道该值。
答案 0 :(得分:3)
您可以尝试这种方式:
var vid = document.getElementsByTagName('video')[0];
vid.addEventListener('play', function() {
console.log('video source:',this.currentSrc);
}, false);
答案 1 :(得分:1)
看起来media elements有一个currentSrc
属性来获取所选的媒体文件。
答案 2 :(得分:0)
HTML5视频元素已经有事件,因此无需添加侦听器。我就是这样做的。
var myVid = document.getElementById('videoId');
if(myVid != null)//if possibility of no video loaded in DOM
{
myVid.onplay = function () {
console.log('video source: ' + myVid.currentSrc);
};
}