且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

HTML5自定义视频控件

更新时间:2022-12-11 18:49:09

请尝试: - http://jsfiddle.net/adiioo7/zu6pK/light/



HTML: -

<video id="video" width="500" oncontextmenu="return false;">
    <source src="https://f9f9fce4f78470f7e248-0b04ae6868f3b76f0186ae4641e4c043.ssl.cf2.rackcdn.com/VidsToCloud.com-Upload-07-01-2013-104654117---What-is-HTML5--www.savevid.com-.mp4" type="video/mp4">Your browser does not support the video tag.</video>
<div id="Layer"></div>
<input type="range" id="seek-bar" value="0">
<div class="clear"></div>
<img src="http://cdn1.iconfinder.com/data/icons/minimal/22x22/status/audio-volume-high.png">
<input type="range" id="volume-bar" min="0" max="1" step="0.1" value="1">

JS: -

jQuery(function ($) {
    //For adding play pause layer on top on the player
    $("#Layer").css({
        position: "absolute",
        top: $("#video").offset().top,
        left: $("#video").offset().left,
        width: $("#video").outerWidth(),
        height: $("#video").outerHeight()
    });

    //Switching play/pause image on the player
    $("#Layer").on("click", function (e) {

        var myVideo = $("#video")[0];
        if (myVideo.paused) {
            myVideo.play();
            $(this).addClass("pause");
        } else {
            myVideo.pause();
            $(this).removeClass("pause");
        }
    });

    //Toggle behaviour for play/pause 
    $("#video").on("click", function (e) {
        var myVideo = $(this)[0];
        if (myVideo.paused) {
            myVideo.play();
        } else {
            myVideo.pause();
        }
    });

    //Showing/Hiding layer on top of the player
    $("#video").on("mouseenter", function (e) {
        $("#Layer").toggle();
    });

    //Volume bar to control video volume
    $("#volume-bar").on("change", function () {
        var myVideo = $("#video")[0];
        myVideo.volume = $(this).val();
    });

    //Seek bar to sync with the current playing video
    $("#video").on("timeupdate", function () {
        var myVideo = $(this)[0];
        var value = (100 / myVideo.duration) * myVideo.currentTime;
        $("#seek-bar").val(value);
    });

    //Seek bar drag to move the current playing video at the time.
    $("#seek-bar").on("mouseup", function () {
        var myVideo = $("#video")[0];

        var currentTime = $("#seek-bar").val() / (100 / myVideo.duration);
        myVideo.currentTime = currentTime;
    });

    $("#seek-bar").on("mousedown", function () {
        var myVideo = $("#video")[0];
        myVideo.pause();
    });

});

参考