vue利用videojs-player实现视频播放

前言:之前插入视频我一直想要使用的是网上比较火的vue-video-player,但是出现了找不到

'vue-video-player/src/custom-theme.css'

等问题,以及视频组件串位等问题,也有可能是vue3兼容性的问题,因此,后来采用了这个videojs-player。

流程:首先下载对应的包

npm install video.js @videojs-player/vue --save

然后去官网可以找到自己想要实现的案例效果所对应的代码并使用到自己的项目中来。

videojs-player | Homepage (surmon.me)

可能需要稍作修改,如没有scss,可以去除style标签上对应的lang;去除script上的lang并删掉ts相关的代码或用不到的方法等等。

可以拿我这里改过的实例代码试一试↓

<template>
  <video-player
    class="video-player vjs-big-play-centered"
    src="https://vjs.zencdn.net/v/oceans.mp4"
    poster="https://vjs.zencdn.net/v/oceans.png"
    crossorigin="anonymous"
    playsinline
    controls
    :volume="0.6"        
    :height="320"        
    :playback-rates="[0.7, 1.0, 1.5, 2.0]"        
    @mounted="handleMounted"
    @ready="handleEvent($event)"
    @play="handleEvent($event)"
    @pause="handleEvent($event)"
    @ended="handleEvent($event)"
    @loadeddata="handleEvent($event)"
    @waiting="handleEvent($event)"
    @playing="handleEvent($event)"
    @canplay="handleEvent($event)"
    @canplaythrough="handleEvent($event)"
    @timeupdate="handleEvent(player?.currentTime())"
  />
</template>

<script>
  import { defineComponent, shallowRef } from 'vue'
  import { VideoJsPlayer } from 'video.js'
  import { VideoPlayer } from '@videojs-player/vue'
  import 'video.js/dist/video-js.css'

  export default {
    name: 'vue-basic-player-example',
    title: 'Basic player (Vue)',
    components: {
      VideoPlayer
    },
    setup() {
      //可打印出当前所触发的事件
      const handleEvent = (log) => {
        console.log('Basic player event', log)
      }

      return { handleEvent }
    }
  }
</script>

<style scoped>
  .video-player {
    background-color: black;
    width: 100%;
  }
</style>

可以看到页面实现了对应的效果,基本的播放功能可以实现: 

使用本地文件也是可以的,如require('@/assets/video/test.mp4'),不同项目路径可能会有些许差别。

附加:弹窗关闭视频依旧运行的问题

可以实现在弹窗中播放视频的效果,但是会出现弹窗关闭视频依旧运行的问题。页面虽然关掉了,依旧在播放,可听到声音。

解决方案:可以使用v-if,根据当前弹窗框的显示状态决定video-player是否存在即可实现。

如下例中,通过dialogVisible决定。

<video-player v-if="dialogVisible" class="video-player vjs-big-play-centered" :src="totalsrc"
        poster="https://vjs.zencdn.net/v/oceans.png" crossorigin="anonymous" playsinline controls :volume="0.6"
        height="500%" :playback-rates="[0.7, 1.0, 1.5, 2.0]"
        @mounted="handleMounted"
        @ready="handleEvent($event)"
        @play="handleEvent($event)"
        @pause="handleEvent($event)"
        @ended="handleEvent($event)"
        @loadeddata="handleEvent($event)"
        @waiting="handleEvent($event)"
        @playing="handleEvent($event)"
        @canplay="handleEvent($event)"
        @canplaythrough="handleEvent($event)"
        @timeupdate="handleEvent(player?.currentTime())"
        />

希望本文会对您有所帮助^_^

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
videojs-player是一个基于HTML5的开源视频播放器库,可以在网页中嵌入视频播放器。在Vue项目中使用videojs-player可以通过以下几种方式进行引用和使用: 1. 在HTML模板中引用:你可以在Vue组件的template标签中使用<video-player>标签来嵌入videojs-player,如下所示: 【1】 ``` <template> <div class='demo'> <video-player class="video-player vjs-custom-skin" ref="videoPlayer" :playsinline="true" :options="playerOptions"></video-player> </div> </template> ``` 2. 在组件内引用:你可以在Vue组件内使用import语句引入videoPlayer,并将其注册为组件的局部组件,如下所示: 【2】 ``` <script> import { videoPlayer } from 'vue-video-player' import 'video.js/dist/video-js.css' export default { components: { videoPlayer } } </script> ``` 3. 全局引用:你可以在main.js中导入并引用VideoPlayer,并使用Vue.use()方法进行全局注册,如下所示: 【3】 ``` // main.js import VideoPlayer from 'vue-video-player' import 'vue-video-player/src/custom-theme.css' import 'video.js/dist/video-js.css' Vue.use(VideoPlayer) ``` 以上就是在Vue项目中使用videojs-player的几种方式。你可以根据具体需求选择合适的方式进行引用和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue视频播放插件vue-video-player](https://blog.csdn.net/qq_38128179/article/details/102959762)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值