当前位置 : 主页 > 网络编程 > JavaScript >

viedio播放视频,全屏

来源:互联网 收集:自由互联 发布时间:2021-07-03
1. [文件] demo1.html~5KB 下载 (11) !doctype htmlhtmlhead meta charset="utf-8"/ title全屏问题/title meta http-equiv="content-type" content="text/html; charset=utf-8"/ meta name="apple-mobile-web-app-capable" content="yes"/ meta http-

1. [文件] demo1.html ~ 5KB     下载(11)    

<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>全屏问题</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content=" width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="screen-orientation"content="portrait">
    <style type="text/css">
        * {
            padding: 0px;
            margin: 0px;
        }

        body div.videobox {
            width: 400px;
            height: 320px;
            margin: 100px auto;
            background-color: #000;
        }

        body div.videobox video.video {
            width: 100%;
            height: 100%;
        }

        :-webkit-full-screen {

        }

        :-moz-full-screen {

        }

        :-ms-fullscreen {

        }

        :-o-fullscreen {

        }

        :full-screen {

        }

        :fullscreen {

        }

        :-webkit-full-screen video {
            width: 100%;
            height: 100%;
        }

        :-moz-full-screen video {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>


<div id="videobox">

    <video controls="controls" src="1459821394241.mp4" id="video" poster="111.PNG"></video>
    <button id="fullScreenBtn">全屏</button>
</div>


<script type="text/javascript">

    //反射調用
    var invokeFieldOrMethod = function (element, method) {
        var usablePrefixMethod;
        ["webkit", "moz", "ms", "o", ""].forEach(function (prefix) {
            if (usablePrefixMethod) return;
            if (prefix === "") {
                // 无前缀,方法首字母小写
                method = method.slice(0, 1).toLowerCase() + method.slice(1);
            }
            var typePrefixMethod = typeof element[prefix + method];
            if (typePrefixMethod + "" !== "undefined") {
                if (typePrefixMethod === "function") {
                    usablePrefixMethod = element[prefix + method]();
                } else {
                    usablePrefixMethod = element[prefix + method];
                }
            }
        });

        return usablePrefixMethod;
    };

    //進入全屏
    function launchFullscreen(element) {
        //此方法不可以在異步任務中執行,否則火狐無法全屏
        if (element.requestFullscreen) {
            element.requestFullscreen();
        } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen();
        } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen();
        } else if (element.oRequestFullscreen) {
            element.oRequestFullscreen();
        }
        else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullScreen();
        } else {

            var docHtml = document.documentElement;
            var docBody = document.body;
            var videobox = document.getElementById('videobox');
            var cssText = 'width:100%;height:100%;overflow:hidden;';
            docHtml.style.cssText = cssText;
            docBody.style.cssText = cssText;
            videobox.style.cssText = cssText + ';' + 'margin:0px;padding:0px;';
            document.IsFullScreen = true;

        }
    }
    //退出全屏
    function exitFullscreen() {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.oRequestFullscreen) {
            document.oCancelFullScreen();
        } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
        } else {
            var docHtml = document.documentElement;
            var docBody = document.body;
            var videobox = document.getElementById('videobox');
            docHtml.style.cssText = "";
            docBody.style.cssText = "";
            videobox.style.cssText = "";
            document.IsFullScreen = false;
        }
    }
    document.getElementById('fullScreenBtn').addEventListener('click', function () {
        launchFullscreen(document.getElementById('video'));
        window.setTimeout(function exit() {
            //检查浏览器是否处于全屏
            if (invokeFieldOrMethod(document, 'FullScreen') || invokeFieldOrMethod(document, 'IsFullScreen') || document.IsFullScreen) {
                exitFullscreen();
            }
        }, 5 * 1000);
    }, false);

</script>
</body>

</html>
网友评论