Vue3 接入西瓜播放器(xgplayer)封装组件

1

作者GitHub:https://github.com/gitboyzcf 有兴趣可关注!!!

安装

pnpm install xgplayer

封装

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

<script setup>
/**
 * @Description: 公共播放组件
 * @Author zcf
 * @Date 2024-05-22 15:34
 * @E-mail boyzcf@qq.com
 */
// https://h5player.bytedance.com/
import Player, { I18N } from 'xgplayer'
import 'xgplayer/dist/index.min.css'
import zh from 'xgplayer/es/lang/zh-cn'
import en from 'xgplayer/es/lang/en'
import { useOutsideSystemStore } from '@/stores/modules/system.js'
const useSystem = useOutsideSystemStore()
I18N.use(zh)
I18N.use(en)
const props = defineProps({
  // 播放器容器id
  id: {
    type: String,
    default: 'pub-player'
  },
  // 播放地址
  url: {
    type: String
  },
  // 播放器宽高
  w: {
    type: String,
    default: '400px'
  },
  h: {
    type: String,
    default: '200px'
  },
  // 自动播放
  autoplay: {
    type: Boolean,
    default: false
  }
})
const player = shallowRef(null)

watch(
  () => useSystem.language,
  (newV) => {
    player.value.lang = newV === 'zh-CN' ? 'zh' : newV
  }
)

onMounted(() => {
  nextTick(() => {
    player.value = new Player({
      lang: useSystem.language === 'zh-CN' ? 'zh' : useSystem.language,
      id: props.id,
      url: props.url,
      height: props.h,
      width: props.w,
      autoplay: props.autoplay,
      commonStyle: {
        // 进度条底色
        progressColor: '',
        // 播放完成部分进度条底色
        playedColor: '#5482ED',
        // 缓存部分进度条底色
        cachedColor: '',
        // 进度条滑块样式
        sliderBtnStyle: {},
        // 音量颜色
        volumeColor: '#5482ED'
      },
      poster: {}
      // ...
    })
  })
})

defineExpose({
  player
})
</script>






到这里就结束了,后续还会更新 前端 系列相关,还请持续关注!
感谢阅读,若有错误可以在下方评论区留言哦!!!

111

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值