【Xgplayer】xgplayer基本使用

2023-11-08

xgplayer简介

  1. 开发团队——字节跳动,字节跳动出品,必属精品。
  2. xgplayer是一个超级牛逼的前端视频播放器,以下几个观点足以证明它的强大
    • 大厂出品——稳
    • 简洁
    • 实用
    • 优雅
    • 文档清晰明了
    • 支持弹幕
    • 对移动端非常友好
    • 自定义插件方便且强大
    • 强就是了

xgplayer官网

Xgplayer VS VideoJs

  • 强烈推荐Xgplayer ,文档简洁、插件一目了然、自定义插件方便
  • VideoJs虽好,但杂,例如api文档,也可能是我菜吧。

xgplayer下载

cnpm install xgplayer

播放器组件

src/components/PlaeryVideo.vue

<template>
    <div id="player"></div>
</template>

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

import Player from 'xgplayer/dist/simple_player';

import volume from 'xgplayer/dist/controls/volume';//音量
import download from 'xgplayer/dist/controls/download';//下载按钮
import playNext from 'xgplayer/dist/controls/playNext';//下一视频
import playbackRate from 'xgplayer/dist/controls/playbackRate';//视频倍速
import pip from 'xgplayer/dist/controls/pip';//画中画
import miniplayer from 'xgplayer/dist/controls/miniplayer';//迷你播放器
import cssFullscreen from 'xgplayer/dist/controls/cssFullscreen';//样式全屏
import screenShot from 'xgplayer/dist/controls/screenShot';//截屏

import { toggleClass } from 'xgplayer/src/utils/util';

const playerOpts = { 
    id: 'player',//元素id
    url: '/public/video/4.mp4',//视频地址 
    lang: 'zh-cn',//设置中文
    // pip: true,//开启画中画 | 移动端无画中画模式

    // 迷你播放器功能支持用户在浏览网页其它内容时继续以小窗的形式观看视频,同时可以拖拽改变小窗在页面中的fix位置。
    // miniplayer: true,//是否开启迷你播放器
    // 迷你播放器配置
    // miniplayerConfig: {
    //     bottom: 200,
    //     right: 0,
    //     width: 320,
    //     height: 180
    // },

    // 进度条标记
    progressDot: [
        {
            time: 3,
            text: "朱英",
            style: { //标记样式
                background: '#1989fa',
                'border-radius': 0
            }
        },
        {
            time: 5,
            text: "周慧敏",
            style: { //标记样式
                background: 'cyan',
                'border-radius': 0
            }
        },
        {
            time: 8,
            text: "张柏芝",
            style: { //标记样式
                background: 'yellow',
                'border-radius': 0
            }
        },
        {
            time: 10,
            text: "邱淑贞",
            style: { //标记样式
                background: 'skyblue',
                'border-radius': 0
            }
        },
        {
            time: 12,
            text: "李嘉欣",
            style: { //标记样式
                background: 'orange',
                'border-radius': 0
            }
        },
        {
            time: 15,
            text: "蓝洁瑛",
            style: { //标记样式
                background: '#08ffc8',
                'border-radius': 0
            }
        },
        {
            time: 17,
            text: "张曼玉",
            style: { //标记样式
                background: '#204969',
                'border-radius': 0
            }
        },
        {
            time: 20,
            text: "王祖贤",
            style: { //标记样式
                background: '#e41749',
                'border-radius': 0
            }
        },
        {
            time: 22,
            text: "梅艳芳",
            style: { //标记样式
                background: '#ff502f',
                'border-radius': 0
            }
        },
        {
            time: 24,
            text: "林青霞",
            style: { //标记样式
                background: '#8134af',
                'border-radius': 0
            }
        }
    ],

    closeVideoClick: false,// true - 禁止pc端单击暂停,反之
    closeVideoTouch: true, // true - 禁止移动端单击暂停,反之
    // closeInactive: true ,// 使播放器控制栏不隐藏,反之 

    fluid: true,//填满屏幕
    autoplay: true,//自动播放
    loop: false,//循环播放
    videoInit: true,//显示第一帧为封面 | 该配置在移动端无效 | 与autoplay配置项不可同时设置为true
    poster: '',//封面图

    // 移动端重要配置
    // 对于9:16的视频友好
    cssFullscreen: true,
    volume: 1,//音量 0 -  1
    // 截图
    // screenShot:false,
    screenShot: {
        saveImg: false,//是否下载
        quality: .92,//图片质量,
        type: 'image/png',
        format: '.png'
    },
    playbackRate: [0.5, 0.75, 1, 1.5, 2], //传入倍速可选数组
    // defaultPlaybackRate: 1,//默认倍速


    // 下一集视频
    // playNext: {
    //     urlList: [
    //         '/public/video/2.mp4',
    //         '/public/video/3.mp4',
    //         '/public/video/1.mp4',
    //     ],
    // },

    // 删除控件
    // ignores: ['time', 'definition', 'error', 'fullscreen', 'i18n', 'loading', 'mobile', 'pc', 'play', 'poster', 'progress', 'replay', 'volume'],

    // 菜单控件
    controlPlugins: [
        // volume,// 音量按钮 移动端不推荐显示该按钮,原因:有点多余
        playbackRate,//倍速
        download,//设置download控件显示
        // playNext,//下一集视频按钮   
        // pip,//画中画
        // miniplayer,// 迷你播放器控件
        cssFullscreen,//竖屏全屏
        screenShot,//截屏
    ],

};

//  播放器 
let player =  null

// 必须在onMounted 或 nextTick实例Xgplayer播放器
onMounted(() => {
    player = new Player(playerOpts)

    // 加载完毕
    player.once('ready', () => {
        setTimeout(() => {
            // 这里可以对Xgplayer操作
        });
    });
})
</script>

使用播放器

src/views/HomeView.vue

<template>
    <!-- 使用视频组件 -->
    <video-player />
</template>

效果图

在这里插入图片描述

在这里插入图片描述


End

2023/3/8 23:38 辑


2023/3/9 1:01 一改


2023/3/9 9:24 二改


2023/3/9 16:59 三改


2023/3/9 23:12 四改


推荐

  1. 【xgplayer】xgplayer填坑记 && xgplayer全屏与css全屏冲突
  2. 【videojs】
  3. 【Xgplayer】xgplayer自定义截屏按钮

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Xgplayer】xgplayer基本使用 的相关文章

  • 有没有办法使用 Vue-Router 从动态 URL 中删除目录?

    我为一家保险经纪公司构建了一个 vue js Web 应用程序 其中每个代理人都有自己的网站 该网站是根据他们的个人资料生成的 这就是我的 vue router 索引文件中的链接的样子 path agents id name AgentSi
  • 我可以动态创建/销毁 Vue 组件吗?

    因此 我正在创建一个相当复杂的 Vue 应用程序 它从后端 API 获取数据并将其显示在前端 具体取决于用户选择的过滤器 它的默认设置是立即显示所有内容 然后一旦用户选择过滤器 它就会拉出不具有这些属性的 卡片 组件 直到今天 一切都很顺利
  • 如何在Vue.js中格式化当前日期格式

    我需要获取当前日期Vue js 为此 我使用了以下方法 today date new Date toJSON slice 0 10 replace g today date将给出日期2019 09 11格式 有什么方法可以自定义这种格式吗
  • 使用 nuxt/content 显示从数据库获取的 markdown

    我在我的应用程序中使用 nuxt content 它工作正常 在应用程序的另一部分 我想从数据库中获取一些降价并显示它 let mytext Some markdown fetched from a db here
  • 删除Vue子组件

    我真的被这个问题困扰了 我创建了一个由子组件组成的 Vue 2 0 组件 它全部都是 Webpacked 等 例如 这是父组件 div h1 This is just a title for lulz h1 div
  • 如何使用 TypeScript 接口输入 Vue 提示 props?

    这件事真的让我的头撞到了墙上 我记得在 Angular 工作时 TS 接口可用于输入提示参数 我想对 Vue 中的 props 做同样的事情 有任何想法吗 代码如下 但仅针对标准对象进行检查 因此传入任何对象都是有效的 import Vue
  • nuxt中根据url参数动态加载组件

    我在 nuxt 中有一个页面 分为两部分 第一部分是一个普通的模板结构 填充了基于 url 参数的动态内容 第二部分是应根据此数据加载的组件 我正在尝试这样完成它
  • 如何使用 vue 观察对象数组中的特定属性

    我正在使用 vue js 2 5 2 我有一个对象数组 我想观察 forms selected 如果它发生变化 则调用一个函数 这是我的尝试 但显然这是不正确的 我尝试将数组放入 for 循环中以观察所选的每个对象的属性 watch for
  • 使用 Nuxt 动态获取并编译模板

    我想从远程获取 svg 并通过编译使其栩栩如生 对于 赋予生命 我的意思是按类选择其中一些元素 并动态地将组件列表附加到其中 现在我只是使用 div div 我的组件如下所示 data return svg async created le
  • 如何销毁/卸载 vue.js 3 组件?

    我有一个相当大的vue js 2具有动态选项卡机制的应用程序 用户可以与应用程序打开和关闭选项卡进行交互 每个选项卡代表一条路线 为了实现这一点 我使用 vue router 并保持活动状态 如下例所示
  • 如何在没有 API 请求的情况下使用 Nuxt.js 生成 100% 静态网站?

    我正在测试周围Nuxt js https nuxtjs org 生成静态网站 使用API 获取数据时是否可以生成100 静态站点 从而摆脱API和请求 根据我到目前为止的测试 所有文件都已正确生成并托管在Github 页面 https pa
  • beforeRouteUpdate 和观看 '$route' - Vue.js 之间的区别?

    正如我们所知 为了对我们使用的同一组件中的参数变化做出反应beforeRouteUpdate挂钩或观看 route 观看 route const User template watch route to from react to rout
  • Vue 3 输入模式

    我想创建输入 如果模式不匹配 我可以用空字符替换输入的字符 模板
  • ES6 在defineAsyncComponent 中命名导入

    我想异步加载我的网络应用程序的一些元素 这是旧的导入 import Popover PopoverButton PopoverPanel from headlessui vue export default components Popov
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • Vuetify:v-ripple 只能用于块级元素

    我今天刚开始收到此错误 它破坏了我的整个网站 因为我像个傻瓜一样在页面加载时加载 Vuetify 有谁知道这意味着什么或如何解决它 谷歌搜索没有发现任何有用的信息 Edit 对于因网站也损坏而发现此问题的任何人 这可能是因为您加载的位置vu
  • 如何封装Vuejs项目中的常用功能?最佳实践

    我正在开发一个使用 Vuejs 作为前端的中型项目 我正在探索的封装 分离可能在许多组件中使用的常用方法的选项包括 mixins 方法和插件方法 混合方法我必须在每个要使用 mixin 方法的组件 文件 中编写一条 import 语句 由于
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • 如何减少 WEBPACK + VUEJS 中的包大小

    我遵循了很多有关如何减小捆绑包大小的教程 但没有任何内容对捆绑包大小产生任何影响 我不知道为什么 每次当我向 webpack 添加一些新代码时 我的包大小都保持与以前相同 我的应用程序是使用 vue cli 3 pwa 插件 webpack
  • 为什么我从 c# 到 js 得到不同的 MD5 哈希值?

    我有一个用于加密密码的 C 函数 System Security Cryptography MD5CryptoServiceProvider md5Provider new System Security Cryptography MD5C

随机推荐