【VideoJs】初识videojs && video.js 视频播放器的基本使用 && videojs基础用法 && videojs视频播放器 && vue3中使用videojs

这篇具有很好参考价值的文章主要介绍了【VideoJs】初识videojs && video.js 视频播放器的基本使用 && videojs基础用法 && videojs视频播放器 && vue3中使用videojs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

videojs介绍

  1. 免费,开源
  2. 插件多
  3. 可自定义

【推】

  • 虽然,但是Videojs算好了,但我觉得有点杂,特别是文档与插件,且自定义插件有点困难,也可能是我比较菜吧

  • 相比之下,我还是强烈推荐 【Xgplayer ——点我进入】

  • 备用地址 http://t.csdn.cn/H0cAV

    • Xgplayer 优点
      1. 优雅、美观
      2. 文档清晰明了
      3. 大厂出品——字节跳动,大厂出品——稳,大厂出品必属精品
      4. 方便自定义插件/方法
      5. 对移动端友好,如果做移动端视频播放器,无脑选Xgplayer就行。
      6. 支持弹幕
      7. 支持音乐播放器与歌词滚动

videojs下载

cnpm install --save-dev video.js

videojs官网

videojs官网
备用地址 https://videojs.com/


vue3中使用videojs

创建videojs组件

src/components/VideoPlay.vue

<template>
    <!-- 
        class 作用
        vjs-matrix 自定义皮肤 
        vjs-show-big-play-button-on-pause 暂停视频时显示大按钮 
        vjs-styles-dimensions 自定义videojs样式
    -->
    <video ref="videoPlayer" :class="vClass"
        class="vjs-styles-dimensions vjs-show-big-play-button-on-pause video-js"></video>
</template>
  
<script>
import videojs from 'video.js';
// 加载中文
import lang_zhcn from "video.js/dist/lang/zh-CN.json"
// 加载css
import 'video.js/dist/video-js.min.css'
// 使用中文
videojs.addLanguage('zh-CN', lang_zhcn);


export default {
    name: 'VideoPlayer',
    props: {
        videoSrc: {
            type: Object,
            default() {
                return {};
            }
        }
    },
    data() {
        return {
            player: null,
            // 菜单栏配置
            videoOptions: {
                autoplay: true,
                controls: true,
                preload: 'auto',
                playbackRates: [0.2, 0.5, 1, 1.5, 2, 2.5, 3],//视频播放速度
                // aspectRatio: '16:9',//宽高比,9:16 16:9 4:3等等  设置后width和height属性无效
                // fluid: true,//自动计算宽高 ,若设置了aspectRatio,则失效
                // liveui: true,//不知


                userActions: {
                    doubleClick: false,// 双击全屏 boolean|function 

                    // 热键
                    //     hotkeys(event) {
                    //         // 'x'  键 - 暂停
                    //         if (event.which === 88) {
                    //             this.pause();
                    //         }
                    //         // `y` 键 - 播放
                    //         if (event.which === 89) {
                    //             this.play();
                    //         }
                    //     },//热键
                },

                language: 'zh-CN',
                controlBar: {
                    children: [
                        { name: 'playToggle' }, // 播放按钮
                        { name: 'currentTimeDisplay' }, // 当前已播放时间
                        { name: 'progressControl' }, // 播放进度条
                        { name: 'durationDisplay' }, // 总时间
                        { name: 'audioTrackButton' },
                        { // 倍数播放
                            name: 'playbackRateMenuButton',
                        },
                        // {
                        //     name: 'volumePanel', // 音量控制
                        //     inline: false, // 不使用水平方式
                        // },
                    ],
                    // PictureInPictureToggle: true,  //画中画

                    // 是否显示全屏按钮
                    fullscreenToggle: true,

                    // 音量是否在一行上显示
                    // volumePanel: {
                    //     // true 同一行显示音量调整
                    //     // false 竖直显示音量调整
                    //     inline: false
                    // },

                    // 视频播放完时触发
                    // true 显示回放图标
                    // false 显示暂停图标
                    playToggle: {
                        replay: true
                    }
                },
				
				// 视频地址
                sources: this.videoSrc,
            }
        }
    },

    mounted() {
        this.player = videojs(this.$refs.videoPlayer, this.videoOptions, () => {
            // this表示videojs实例 
            // 可在这里对videosjs操作
            console.log(this);

            //   例:创建按钮 
            const button = p.getChild('ControlBar').addChild('button', {
                controlText: '按钮',
                className: 'vjs-visible-text',
                clickHandler: function (event) {
                    videojs.log('1');
                }
            });
        });


    },
    beforeDestroy() {
        if (this.player) {
            this.player.dispose();
        }
    }
}
</script>
 
<style scoped>
/* 、、、、、、、、、、显示当前+所有时间、、、、、、、、、、、、、、、。。 */
.vjs-styles-dimensions>>>.vjs-control-bar .vjs-duration,
.vjs-styles-dimensions>>>.vjs-control-bar .vjs-current-time {
    display: block;
    padding: 0;
}



/* 、、、、、、、、、、、播放器按钮大小+自定义全屏图标大小、、、、、、、、、、、、、、、、、、、 */
.vjs-styles-dimensions>>>.vjs-control-bar button .vjs-icon-placeholder::before,
.vjs-styles-dimensions>>>.vjs-control-bar .my-full-btn::before {
    font-size: 3em;
    line-height: 1.1;
}



/* 自定义播放器颜色 */
/* Change all text and icon colors in the player. */
.vjs-matrix.video-js {
    color: red;
}

/* Change the border of the big play button. */
.vjs-matrix .vjs-big-play-button {
    border-color: red;
}

/* Change the color of various "bars". */
.vjs-matrix .vjs-volume-level,
.vjs-matrix .vjs-play-progress,
.vjs-matrix .vjs-slider-bar {
    background: red;
}
</style>

使用videojs组件

src/views/HomeView.vue

<template>
    <video-player :videoSrc="videoSrc" />
</template>

<script setup>
import { reactive } from 'vue';

//  视频地址 
const videoSrc = reactive(
    [
        {
            src:
                '/public/video/1.mp4',
            type: 'video/mp4'
        }
    ]
)
</script>

效果图

videojs常用class

  • 屏幕比列

    1. vjs-fluid 全屏
    2. vjs-16-9
    3. vjs-4-3
    4. vjs-9-16
    5. vjs-1-1
    6. vjs-fill 填满父级宽高(必须有父级)
    7. vjs-show-big-play-button-on-pause 显示中间暂停按钮
    8. video-js 必须的class
    9. vjs-styles-dimensions 通过该类自定义videojs,例
    .vjs-styles-dimensions .my-video-btn666{
    	background:green;
    }
    
  • vjs-hidden 该class可隐藏菜单元素


【更多API参考】
videojs API参考

备用地址 https://docs.videojs.com


videojs图标库

  • videojs图标库
  • 备用地址 https://videojs.github.io/font/

videojs创建组件

  • 参考地址 component
  • 备用地址 https://videojs.com/guides/components#adding-a-component

End
2023/3/6 17:24


2023/3/6 20:22 一改文章来源地址https://www.toymoban.com/news/detail-769214.html


更多推荐

  1. videojs自定义全屏按钮

到了这里,关于【VideoJs】初识videojs && video.js 视频播放器的基本使用 && videojs基础用法 && videojs视频播放器 && vue3中使用videojs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 使用videojs来播放不同格式视频

    2024年02月14日
    浏览(35)
  • vue自定义h5video视频播放器进度条组件,可拖拽、跳转、倍速、全屏

    一个进度条组件控制多个视频的播放、进度调整。视频可点击全屏观看,唯一的进度条是某个指定视频的视频信息。 全屏 点击进度条跳转 拖动滑块 在菜鸟教程上有以下几个参数的详细解说,这张图忘记哪里看的了,如有认领可评论我贴链接 倍速 // 倍速 handleChangeSpeed(item)

    2024年02月12日
    浏览(120)
  • 【Vue】播放flv格式视频(flv.js视频播放器)

     图片来源:HTTP-FLV直播初探   github地址:GitHub - bilibili/flv.js: HTML5 FLV Player npm install flv.js --save 封装一个组件flvVideo hasAudio设置为true就不展示。。。不知道为啥~ home.vue 参考:Vue 中使用flv.js视频播放器

    2024年02月14日
    浏览(77)
  • webrtc视频播放器(ZLMRTCClient.js)

    在播放实时视频时,视频播放器一般会有延迟,此时,就可以使用webrtc来拉流,延迟在1s或者基本没有延迟。与zlm配套的rtc js客户端.(国标) ZLMRTCClient.js: 与zlm配套的rtc js客户端 ZLMRTCClient.js: 与zlm配套的rtc js客户端 https://gitee.com/xiongguangjie/zlmrtcclient.js 按照 下图执行命令行,则自

    2024年02月11日
    浏览(51)
  • vue3播放m3u8视频(videoJS)

    需要同时导入videoJS以及相关的CSS 以下时项目使用中自己封装的组件,用起来也很简单,需要的可以对照自取 UI框架为 ant-design-vue

    2024年02月03日
    浏览(41)
  • uniapp(全端兼容) - 最新详细禁用video视频组件的拖动快进快退功能,禁止视频播放组件video拖曳改变视频进度,uni-app如何不让视频播放器手动快进和快退(可保证用户完整观看完视频)

    在uniapp小程序/h5网页网站/安卓苹果app/nvue等(全平台完美兼容)开发中,详细实现Video视频组件禁止用户快进和快退,屏蔽禁用屏幕拖拽进行快退和快进功能(禁止用户拖动视频进度条),强制让用户从0-100完整观看完视频允许中途快进,适用于uni-app官方video视频组件,也支持

    2024年04月27日
    浏览(69)
  • webrtc视频播放器(srs.sdk.js)

    在vue中使用,需要将js方法中的函数通过 export default{}的方式暴露出来。 下面是通过srs.sdk.js文件中的SrsRtcPlayerAsync方法进行拉流; 还有一种方法,可以在index.html中通过script引入jswebrtc.min.js文件,调用方法直接使用 (1)封装组件 (2)使用 (1)封装 (2)使用

    2024年02月09日
    浏览(54)
  • video.js在vue项目中设置中文语言包,报错videojs is not defined 解决办法

    在vue项目中使用video.js时要求中文化,但是网上的解决办法不太好找,特此记录一下。 错误步骤: 根据网上的教程,找到中文包在node_modules/video.js/dist/lang/zh-CN.js import \\\'video.js/dist/lang/zh-CN.js 在设置里配置成中文: language:“zh-CN” 报错:videojs is not defined 解决办法: 1、找到这

    2024年02月13日
    浏览(41)
  • uniapp的H5项目使用videojs播放m3u8类型视频

    uniapp项目,运行在手机浏览器端,需要播放m3u8类型视频。在网上找了好久教程,记录一下实现过程。 参考了:uni-app npm方式引入video.js教程 支持H5播放m3u8、mp4等格式视频文件_npm video.js_wang_9909的博客-CSDN博客 以及videojs官网。 1、安装videojs 2、在main.js中加以下三行代码 3、页面

    2024年02月07日
    浏览(41)
  • 阿里云实践 - HTML5断点播放m3u8视频(videojs)

    场景:HTML5页面需要通过video标签播放一段200M的服务器视频,默认会需要先下载完视频后才播放,有较长的等待时间; 解决方案:前端通过videojs-contrib-hlsjs.min.js来控制video标签进行播放m3u8视频流播放。 步骤:         1:服务端视频video.mp4生成video.ts视频数据包,执行如下

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包