• video.js的应用


    1、引入css和js文件

    <link href="./plugins/video-5.5.3/video-js.css" rel="stylesheet">
    <script src="./plugins/video-5.5.3/video.js"></script>

    2、HTML引入

    <video
        id="my-player"
        class="video-js" // 必加
        controls //是否显示控件,默认显示
        preload="auto" //预加载
        poster="//vjs.zencdn.net/v/oceans.png" // 视频加载前显示的图片
        data-setup='{}'> // 必加
        <source src="//vjs.zencdn.net/v/oceans.mp4" type="video/mp4"></source>
        <source src="//vjs.zencdn.net/v/oceans.webm" type="video/webm"></source>
        <source src="//vjs.zencdn.net/v/oceans.ogv" type="video/ogg"></source>
        <p class="vjs-no-js">播放视频需要启用 JavaScript,推荐使用支持HTML5的浏览器访问。
        To view this video please enable JavaScript, and consider upgrading to a web browser that
        <a href="http://videojs.com/html5-video-support/" target="_blank">
            supports HTML5 video
        </a>
        </p>
    </video>

    3、js引入

    var playerUrl = data.data;
    var u = {type:"rtmp/flv",src:playerUrl};
    var myPlayer =  videojs("my-player");  //初始化视频
    myPlayer.reset();
    myPlayer.src(u);

    【注】遇到的BUG、解决方案

    (1)当页面跳转以后,video不会自动停止,可以调用 player.dispose() 方法销毁当前视频

    采用angularjs监听路由变化的方法,监听页面跳转,当页面跳转时销毁video视频

    $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
        var myPlayer =  videojs("my-player");  //初始化视频
        myPlayer.dispose();    //销毁
    });

    (2)video.js加载以后的 <object></object> 中的 data="http://vjs.zencdn.net/swf/5.0.1/video-js.swf" ,如果本地访问,链接会首先致。

    解决办法:改为本地的.swf文件。注意引入的时候要放在video.js后面

    <script src="./plugins/video-5.5.3/video.js"></script>
    <script language="javascript">
        videojs.options.flash.swf = './plugins/video-5.5.3/video-js.swf'
    </script>

    (3)chrome浏览器有时候不会提示是否允许flash加载的弹窗,flash不加载,视频就无法播放

    解决办法:判断是否加载了flash player插件,弹窗提示安装

    function flashChecker() {
        var hasFlash = 0;     //是否安装了flash
        var flashVersion = 0;   //flash版本
    
        if(document.all) {
            var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
            if(swf) {
                hasFlash = 1;
                VSwf = swf.GetVariable("$version");
                flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]);
            }
        } else {
            if(navigator.plugins && navigator.plugins.length > 0) {
                var swf = navigator.plugins["Shockwave Flash"];
                if(swf) {
                    hasFlash = 1;
                    var words = swf.description.split(" ");
                    for(var i = 0; i < words.length; ++i) {
                        if(isNaN(parseInt(words[i]))) continue;
                        flashVersion = parseInt(words[i]);
                    }
                }
            }
        }
        return { f: hasFlash, v: flashVersion };
    }
    
    var fls = flashChecker();
    var s = "";
    if(!fls.f) {
        if(confirm("您的浏览器未安装Flash插件,现在安装?")) {
            window.location.href = "http://get.adobe.com/cn/flashplayer/";
        }
    }
  • 相关阅读:
    Exam Results(尺取)
    Exam Results(尺取)
    CF 1437C Chef Monocarp (背包dp)
    CF 1437C Chef Monocarp (背包dp)
    leecode-143.重排列表(链表,指针)
    leecode-143.重排列表(链表,指针)
    leecode-1.俩数之和(map)
    leecode-1.俩数之和(map)
    牛客多校(2020第三场)F Fraction Construction Problem
    牛客多校(2020第三场)F Fraction Construction Problem
  • 原文地址:https://www.cnblogs.com/miny-simp/p/9343020.html
Copyright © 2020-2023  润新知