javascript - 如何在html中控制视频何时结束

标签 javascript html video

我按照一些教程制作了一个视频播放器,我想控制视频结束时发生的情况。
我希望它显示 2 个视频缩略图。一旦您单击其中之一,它将异步加载(无需刷新页面)并开始自行播放。

我该如何继续做到这一点?

这是我的代码:

CSS

div#video_player_box{ width:550px; background:#000; margin:0px auto;}
div#video_controls_bar{ background: #333; padding:10px; color:#CCC;}
input#seekslider{ width:180px; }
input#volumeslider{ width: 80px;}

JavaScript

var vid, playbtn, seekslider, curtimetext, durtimetext, mutebtn, volumeslider, fullscreenbtn;

function intializePlayer() {
    // Set object references
    vid = document.getElementById("my_video");
    playbtn = document.getElementById("playpausebtn");
    seekslider = document.getElementById("seekslider");
    curtimetext = document.getElementById("curtimetext");
    durtimetext = document.getElementById("durtimetext");
    mutebtn = document.getElementById("mutebtn");
    volumeslider = document.getElementById("volumeslider");
    fullscreenbtn = document.getElementById("fullscreenbtn");
    // Add event listeners
    playbtn.addEventListener("click", playPause, false);
    seekslider.addEventListener("change", vidSeek, false);
    vid.addEventListener("timeupdate", seektimeupdate, false);
    mutebtn.addEventListener("click", vidmute, false);
    volumeslider.addEventListener("change", setvolume, false);
    fullscreenbtn.addEventListener("click", toggleFullScreen, false);
}
window.onload = intializePlayer;

function playPause() {
    if (vid.paused) {
        vid.play();
        playbtn.innerHTML = "Pause";
    } else {
        vid.pause();
        playbtn.innerHTML = "Play";
    }
}

function vidSeek() {
    var seekto = vid.duration * (seekslider.value / 100);
    vid.currentTime = seekto;
}

function seektimeupdate() {
    var nt = vid.currentTime * (100 / vid.duration);
    seekslider.value = nt;
    var curmins = Math.floor(vid.currentTime / 60);
    var cursecs = Math.floor(vid.currentTime - curmins * 60);
    var durmins = Math.floor(vid.duration / 60);
    var dursecs = Math.floor(vid.duration - durmins * 60);
    if (cursecs < 10) {
        cursecs = "0" + cursecs;
    }
    if (dursecs < 10) {
        dursecs = "0" + dursecs;
    }
    if (curmins < 10) {
        curmins = "0" + curmins;
    }
    if (durmins < 10) {
        durmins = "0" + durmins;
    }
    curtimetext.innerHTML = curmins + ":" + cursecs;
    durtimetext.innerHTML = durmins + ":" + dursecs;
}

function vidmute() {
    if (vid.muted) {
        vid.muted = false;
        mutebtn.innerHTML = "Mute";
    } else {
        vid.muted = true;
        mutebtn.innerHTML = "Unmute";
    }
}

function setvolume() {
    vid.volume = volumeslider.value / 100;
}

function toggleFullScreen() {
    if (vid.requestFullScreen) {
        vid.requestFullScreen();
    } else if (vid.webkitRequestFullScreen) {
        vid.webkitRequestFullScreen();
    } else if (vid.mozRequestFullScreen) {
        vid.mozRequestFullScreen();
    }
}

最佳答案

请查看视频标签的“结束”事件。我不会给你写完整的代码,但我会告诉你大致的过程:

function showVideoSelector() {
    /*You must create a DOM for the menu, put it above the video or wherever, 
    and add some nice animations etc. :)
    Use the following functions to load and play 
    the selected video in the onclick event for your new menu.
    change someElement to something better... */
    ...
    someElement.onclick = function () {
        vid.src = "newVideo";
        vid.load();
        vid.play();
    }
}

vid.addEventListener("ended",showVideoSelector,false); // This is the important part

关于javascript - 如何在html中控制视频何时结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834261/

相关文章:

javascript - 如何将多个文本字段传递给单个 Javascript 函数并计算结果

html - <pre> 标签使浏览器关闭段落

javascript - 正确使用数据绑定(bind)可见属性

javascript - jQuery 事件范围不起作用

javascript - CSS/Javascript 挑战 - 只想为文本居中的最后一行实现底部边框

ios - AVURLAsset tracksWithMediaType :AVMediaTypeVideo Return crash

python - 使用 python 从 THE(西类牙电视网站)下载视频

javascript - 如何使用 javascript 播放 google drive video?

javascript - 在 Firefox 中,onload 未使用 createObjectURL img.src 触发

javascript - 使用 Javascript 将类添加到动态行