美文网首页程序员vue专栏Vue移动端
vue + video.js实现视频列表页(多个视频)

vue + video.js实现视频列表页(多个视频)

作者: River_tong | 来源:发表于2019-04-17 17:11 被阅读2次

    vue + video.js实现视频列表页

    vue项目中做一个视频列表页,本来用原生video标签来实现,由于考虑到手机浏览器兼容问题,找了很多插件,最后决定用video.js这个插件来实现。Video.js是一个有着HTML5背景的网络视频播放器。它同时支持HTM5和Flash视频,简单来说就是HTMl5 和 Flash 视频播放器

    安装video.js

    $ npm install video.js
    

    在main.js中引用

    import Video from 'video.js'
    import 'video.js/dist/video-js.css'
    
    Vue.prototype.$video = Video
    

    页面使用

    <template>
      <div class="hello">
        <div v-for="(item,i) in list" :key="i" style="margin-bottom: 30px">
          <video :id="'myVideo'+item.id" class="video-js">
            <source :src="item.src" type="video/mp4">
          </video>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: 'HelloWorld',
        data(){
          return {
              list:[
                  {
                      src:'http://img.yopoo.cn/banner_video.mp4 ',
                      id:0,
                      pic:"",
                  },
                  {
                      src:'http://img.yopoo.cn/banner_video.mp4 ',
                      id:1,
                      pic:"",
                  },
                  {
                      src:'http://img.yopoo.cn/banner_video.mp4 ',
                      id:2,
                      pic:"",
                  }
              ]
          }
        },
        mounted() {
            this.initVideo();
        },
        methods: {
            initVideo() {
                //初始化视频方法 循环列表获取每个视频的id
                this.list.map((item,i)=>{
                    let myPlayer = this.$video('myVideo'+item.id, {
                        //确定播放器是否具有用户可以与之交互的控件。没有控件,启动视频播放的唯一方法是使用autoplay属性或通过Player API。
                        controls: true,
                        //自动播放属性,muted:静音播放
                        autoplay: "muted",
                        //建议浏览器是否应在<video>加载元素后立即开始下载视频数据。
                        preload: "auto",
                        //设置视频播放器的显示宽度(以像素为单位)
                        width: "800px",
                        //设置视频播放器的显示高度(以像素为单位)
                        height: "400px",
                        //封面图
                        poster:item.pic
                    });
                })
    
            }
        }
    }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    
    </style>
    
    

    效果图

    以上就是实现的步骤和代码 有什么问题欢迎大家评论和指出。

    相关文章

      网友评论

        本文标题:vue + video.js实现视频列表页(多个视频)

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