现在我有一系列视频。当我单击下一个并显示阵列加载中的下一个或上一个视频时,我该怎么做呢?
<video id="video" controls autoplay width="1000">
<source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="videos/test.ogv" />
</video>
<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a>
<script>
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv" ]; // literal array
function vidSwap(vidURL) {
var myVideo = document.getElementsByTagName('video')[0];
myVideo.src = vidURL;
myVideo.load();
myVideo.play();
}
答案 0 :(得分:2)
使用你的代码,它会是这样的。 你需要做的是让你在javascript变量上加载的视频。 然后,当您单击“上一个”或“下一个”时,您可以调用一个能够输入正确视频编号并调用它的函数。
<script>
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos"]
var video = 0;
function vidSwap() {
var myVideo = document.getElementsByTagName('video')[video];
myVideo.src = vidURL[video];
myVideo.load();
myVideo.play();
}
function prevVideo() {
if(video == 0) {
video = vidUrl.length;
}
else {
video -= 1;
}
vidSwap();
}
function nextVideo() {
if(video == length) {
video = 0;
}
else {
video += 1;
}
vidSwap();
}
</script>
<video id="video" controls autoplay width="1000">
<source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="videos/test.ogv" />
</video>
<a href="#" onClick="javascript:prevVideo(); return false;">prev</a>
<a href="#" onClick="javascript:nextVideo(); return false;">next</a>
答案 1 :(得分:1)
引入变量,它将保存当前视频索引,然后在每次按next / prev时递增或递减
</script>
var i = 0;
<script>
javascript:vidSwap(vidURL[i++])
答案 2 :(得分:1)
看起来你在增量运算符中缺少另一个加号。
尝试更改
<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a>
到此
<a href="#" onClick="javascript:vidSwap(vidURL[i++]); return false;">next</a>
答案 3 :(得分:1)
用环绕式包裹替代品;
<a href="#" onClick="return Vids.next();">next</a>
<a href="#" onClick="return Vids.prev();">prev</a>
...
var Vids = (function() {
var _currentId = -1;
var _urls = ["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv" ]; // literal array
return {
next: function() {
if (++_currentId >= _urls.length)
_currentId = 0;
return this.play(_currentId);
},
prev: function() {
if (--_currentId < 0)
_currentId = _urls.length - 1;
return this.play(_currentId);
},
play: function(id) {
var myVideo = document.getElementsByTagName('video')[0];
myVideo.src = _urls[id];
myVideo.load();
myVideo.play();
return false;
}
}
})();