美文网首页
vue-video-player组件封装

vue-video-player组件封装

作者: 小小_128 | 来源:发表于2021-07-22 11:25 被阅读0次

    首先要在vue项目里安装依赖

    npm install vue-video-player --save
    

    在main.js中引入

    // 视频播放
    import VideoPlayer from 'vue-video-player'
    // 视频播放
    require('vue-video-player/node_modules/video.js/dist/video-js.css')
    require('vue-video-player/src/custom-theme.css')
    Vue.use(VideoPlayer)
    

    在components加一个vue组件

    <template>
      <div id="vueVideoPlayer">
        <video-player
          class="video-player vjs-custom-skin"
          :playsinline="true"
          :options="playerOptions"
        ></video-player>
      </div>
    </template>
    <script>
    export default {
      props: {
        url: {
          type: String,
          default: ''
        }
      },
      data () {
        return {
          // 配置信息
          playerOptions: {
            playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
            autoplay: false, // 如果true,浏览器准备好时开始回放。
            muted: false, // 默认情况下将会消除任何音频。
            loop: false, // 导致视频一结束就重新开始。
            preload: 'auto', 
            // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
            language: 'zh-CN',
            aspectRatio: '16:10', 
            // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
            fluid: true, 
            // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
            sources: [{
              src: `${process.env.VUE_APP_API_DOMAIN}/app/activityFiles/file/${this.url}/download`, // 路径
              type: 'video/mp4' // 类型
            }],
            poster: '../../static/images/test.jpg', // 你的封面地址
            width: document.documentElement.clientWidth,
            notSupportedMessage: '此视频暂无法播放,请稍后再试', 
            // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
            controlBar: {
              timeDivider: false,
              durationDisplay: false,
              remainingTimeDisplay: false,
              fullscreenToggle: true // 全屏按钮
            }
          }
        }
      }
    }
    </script>
    
    

    在你所需要的页面里面引入模板调用

    <template>
      <div class="community-activity-detail flexz flexv">
        <div class="detail-wonderful flexz flexv" v-if="wonderful !== null">
          <div class="pics flexz jus-b">
            <div class="pics-item flexz flexv" v-for="(it, ind) in wonderful"             :key="ind">
              <van-image v-if="it.type === 1" width="100%" lazy-load :src="it.path | img" @click="getImg(it.path)" use-error-slot />
              <vueVideoPlayer v-else :url="it.path" :size="it.size" lazy-load />
            </div>
          </div>
        </div>
      </div>
    </template>
    <script>
    import vueVideoPlayer from '@/components/vueVideoPlayer'
    export default {
      components: {
        vueVideoPlayer
      }
    </script>
    

    相关文章

      网友评论

          本文标题:vue-video-player组件封装

          本文链接:https://www.haomeiwen.com/subject/zguemltx.html