Web网页播放器制作(videojs7)-(二)api 事件 属性使用

0 引言

前面已经讲解了如何使用videojs了,前面的使用都比较简单,一般有一定规模的网络系统都不止步于这样的需求,本章将会讲解通过js使用videojs。此博客秉承以下原则:

  • 没有原理性介绍,我不是这个工具的作者,写了也是抄的。
  • 没有太详细的操作步骤,操作步骤尽量指向官方文档。
  • 没有遇到的或者不值一提的,我都不会写上去。
作者Daniel.Leung
组织池鱼 - YiiGaa
邮箱YiiGaa@126.com
日期2019-09-14

1 初始化播放器

1.1 引入第三方库

库引入,这里多引了一个jquery,个人比较习惯用jquery

   <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <link href="https://unpkg.com/video.js/dist/video-js.min.css" rel="stylesheet">
    <script src="https://unpkg.com/video.js/dist/video.min.js"></script>

1.2 HTML

html引用video标签

    <video id="id_PlayerBody" class="video-js" controls></video>

这里引用了 controls ,这个会默认显示控制栏(如进度条、音量条等),以后在需要自制控制栏时会把该属性去掉。

1.3 js

js初始化video

    var options = {};
    var player = videojs("id_PlayerBody", options);
  • options是需要传入的参数,和第一讲中在video标签使用data-setup='{}'是等效的。
  • player是video的句柄(虽然js里应该叫变量,而且在写js里说句柄怪怪的,但我还是觉得叫句柄更为准确一些),后面使用API都需要通过这个句柄调用。

1.4 设置播放资源

player.src("./12.mp4")

.12.mp4是视频路劲

1.5 常见问题

因为现在的options是空的,这里可能看不出来。但以后可能会有其他参数的时候,可能你会发现参数不起作用。那么原因很可能是在video标签引用了data-setup='{}',这时候可以在浏览器console看一下是否有该错误。
VIDEOJS: WARN: Player “id_PlayerBody” is already initialised. Options will not be applied.
在这里插入图片描述

1.6 完整代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
        <link href="https://unpkg.com/video.js/dist/video-js.min.css" rel="stylesheet">
        <script src="https://unpkg.com/video.js/dist/video.min.js"></script>
    </head>
    <body>
        <video id="id_PlayerBody" class="video-js Player_realBody" controls >
        </video>
    </body>
    <script>
        $(document).ready(function(){
            var options = {};

            var player = videojs("id_PlayerBody", options);
            player.src("./12.mp4")
        });
    </script>
</html>

2 初始化参数设置

就是上述 var options = {};的常用参数

      var options ={
            width:1600,//宽
            height:900,//高
            controls:true,//控制栏是否显示
            preload:"none",//预加载:默认是none,'auto'|'true'|'metadata'|'none'
            poster:'封面图.jpg',//预览图
            autoplay:false,//自动播放,Chrome5以后和现在的手机播放器,都不支持自动播放了,静音情况下部分浏览器支持
            loop:true,//循环
            muted:true,//静音
            errorDisplay:false,//发生错误时,videojs是否显示错误
            sources:[//播放的源
                {
                    src:'source/test.mp4',
                    type:'video/mp4'
                }
            ],
            controlBar: {//控制栏设置
                muteToggle: false,
                volumeMenuButton:false//静音按钮
            },
            flash:{//设置flash播放器路劲
                swf:"flash播放器路劲.swf"
            },
            techOrder:["html5","flash"]//选用哪个技术优先,videojs会按照数组的先后顺序自动选择,如果数组单一为“flash”,即播放器会使用flash,而不会使用html5的播放器。
        }

其他参数请参照官方文档,我一开始也没看懂官方文档是怎么个编写逻辑,然后就图省事想找中文博客,发现找不到,最后我还是重新看官方文档了。参数说明:https://docs.videojs.com/tutorial-options.html

3 相关api

3.1 事件监听

			player.on("timeupdate", 回调函数)//视频播放进度更新通知
            player.on("pause", 回调函数)//视频暂停通知
            player.on("play", 回调函数)//视频播放通知
            player.on("playing", 回调函数)//视频正在播放事件,播放期间会定期回调
            player.on("resize", 回调函数)//
            player.on("error", 回调函数)//播放器错误回调
            player.on("loadedmetadata", 回调函数)//meta信息load完通知
            player.on("loadeddata", 回调函数)//当当前帧的数据已加载,但没有足够的数据来播放指定音频/视频的下一帧时,会发生 loadeddata 事件
            player.on("waiting", 回调函数)//视频加载期间会定期回调
            player.on("durationchange", 回调函数)//duration变化的通知
            player.on("progress", 回调函数)//进度变化通知
            player.on("ended", 回调函数)//播放完成通知

videojs的事件基本上和video标签的事件一致,先参考video标签的事件说明https://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp
如果实在是不好用,那再看官方文档吧,不过我找到的也是在说html5的,可能我没找对,欢迎矫正
https://docs.videojs.com/html5

3.2 属性调用

player.duration()//获取现在duration值
player.currentTime(xx)//设置当前播放的进度,xx为值
player.play()//播放视频,在没有事件触发(如按钮点击等)情况下,现在大多浏览器是不能播放的,部分浏览器可以支持在静音条件下有效
player.pause()//播放视频
player.videoWidth()//获取视频画面宽度
player.videoHeight()//获取视频画面高度
player.src({//设置播放路劲
        src: url,//播放路劲
        type: type//视频类型
 })
 player.poster(src)//设置封面图,src为图片路劲
 player.volume(volume)//设置音量大小,

这个videojs属性基本也和video标签差不多,先参考video标签的说明
https://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp
官方文档,基本上跟上面的一样,可能我没找对,欢迎矫正
https://docs.videojs.com/html5

4 后记

这一章会成为后面制作控制栏等其他功能做准备。这一章所述也是videojs的基本使用,这里没列全,因为这里不是官方文档,没有必要写全。
使用别人的东西,最好还是能看官方文档,这样能更系统和少走弯路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值