【发布时间】:2014-12-18 11:26:53
【问题描述】:
我正在通过 jquery 从一组指向 mp4 文件的 url 创建视频对象。 我想让第一个视频自动播放,然后在“结束”功能上完成拾取并播放序列中的下一个视频。
$(document).ready(function () {
var urls = ["https://s3-us-west-1.amazonaws.com/linkto.mp4", "https://s3-us-west-1.amazonaws.com/linktoother.mp4"]
var videos = [];
for (var i = 0; i < urls.length; i++) {
var path = urls[i];
var video = $('<video></video>');
var source = $('<source></source>');
source.attr('src', path);
source.appendTo(video);
if (i === 0) {
video.attr('autoplay', 'true');
}
video.attr('id', 'video_' + i);
video.attr('preload', 'true');
video.attr('width', '100%');
videos.push(video);
video.on('ended', function () {
console.log('Video has ended!' + i);
// playNext(video);
});
$('#movie').append(video);
}
我可以看到生成的电影,并且第一部可以正常播放。问题是当“结束”函数时变量 i == 2 因为那是数组中有多少视频并且 for 循环增加了 i。我已经离开 javascript 一段时间了。我可以想到一些解决方法,例如向视频元素添加索引属性或其他东西,但基本上我如何在“结束”函数中获得正确的索引。
【问题讨论】:
标签: javascript jquery html html5-video