3、视频播放列表及视频设置

3.1 使用vue-awesome-swiper生成视频列表

(1)下载vue-awesome-swiper

npm install vue-awesome-swiper --save

(2)在main.js导入

// 在main函数导入swiper,上下滑动组件

import VueAwesomeSwiper from 'vue-awesome-swiper'

import 'swiper/swiper-bundle.css'   #更新写法

Vue.use(VueAwesomeSwiper)

(3)新建VideoList.vue

(4)修改路由router下的index.js,VideoList.vue在index.vue的页面下,是index.vue子路由

即VideoList组件是Home下的index子路由的子路由

            children: [

                //导航栏1

                {

                    path: '/index',

                    name: 'index',

                    component: () =>

                        import ('../views/index/Index.vue'),

                    // 再写一个index下的子路由,是视频的列表

                    children: [{

                        path: '/index',

                        name: 'index',

                        component: () =>

                            import ('../components/index/VideoList.vue')

                    }]

                },

                //导航栏2

                {

                    path: '/follow',

                    name: 'follow',

                    component: () =>

                        import ('../views/follow/Follow.vue')

                }

            ]

不要忘记在index.vue下加入<router-view/>展示路由内容的容器

(5)在VideoList.vue里引用组件Swiper, SwiperSlide,这样得到可以上下滑动的页面.

1)导入组件Swiper, SwiperSlide

2)在swiper标签下是多个swiper-slide标签,swiper-slide下是video标签放入视频链接。

<swiper :options="swiperOption"> 其中swiperOptions是data(){return{swiperOption{定义}}}定义的视频设定信息,如设定垂直方向滑动、高度占满屏幕的高度等。 

  <template>

  <div class="video-list">

      <swiper :options="swiperOption">

          <!-- 上下滑动的内容 -->

        <swiper-slide>

            <div>

                <videos></videos>   #导入视频在页面里

            </div>

        </swiper-slide>


        <swiper-slide>            

            <div>

                <videos></videos>  #导入视频在页面里

            </div>

        </swiper-slide>

        <swiper-slide>slide1</swiper-slide>

        <swiper-slide>slide2</swiper-slide>

      </swiper>

  </div>

</template>

<script>

// 注意官网采用大写的导入

import { Swiper, SwiperSlide} from 'vue-awesome-swiper'

import Videos from '../../components/index/Videos'

export default {

    name:"VideoList",

    data(){

        return{

            swiperOption:{

                direction:"vertical",

                grabCursor:true,

                setWrapperSize:true,

                autoHeight:true,   //自动高度,设为true,wrapper与container会随当前slide的高度自动调整

                slidesPerView:1,

                mousewheel:true,

                mousewheelControl:true,

                height:window.innerHeight, //高度设置,占满整个屏幕

                resistanceRatio:0,

                observeParents:true,

            }

        }

    },

    //导入组件:滑动的组件与导入视频的组件

    components:{

        Swiper,

        SwiperSlide,

        Videos

    }

}

</script>

<style scoped>   //设置样式

    .video-list{

        height: 100%;

    }

    .video-list .swiper-container{

        height: 100%;

    }

</style>  

3.2 使用vue-video-player播放视频

(1)安装vue-video-player

npm install vue-video-player--save

(2)新建Videos.vue

(3)在mian.js中引入样式

import  'video.js/dist/video-js.css'

(4)在VideoList.vue导入组件

import Videos from '../../components/index/Videos'

(5)在Video.vue里设置导入的视频、播放按钮的位置、大小等调整。主要需要使用Video-player组件

<template>

  <div class="videos">

        <video-player class="video-player vjs-custom-skin"

                      ref="videoPlayer"

                      :playsinline="true"

                      :options="playerOptions">

        </video-player>

  </div>

</template>

<script>

import { videoPlayer } from 'vue-video-player'

export default {

        name:"Videos",

        data(){

            return{

                playerOptions : {

               // playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度

                    autoplay: false, //如果true,浏览器准备好时开始回放。

                    muted: false, // 默认情况下将会消除任何音频。

                    loop: false, // 导致视频一结束就重新开始。

                    preload: 'auto', 

                    fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。

                    sources: [

                        {

                            src: 'http://video.jishiyoo.com/161b9562c780479c95bbdec1a9fbebcc/8d63913b46634b069e13188b03073c09-d25c062412ee3c4a0758b1c48fc8c642-ld.mp4',  // 路径

                            type: 'video/mp4'  // 类型

                        }, 

                    ],

                    //poster: "../../static/images/test.jpg", //你的封面地址

                    width: document.documentElement.clientWidth,

                    notSupportedMessage: '此视频暂无法播放,请稍后再试', //允许覆盖Video.js无法播放媒体源时显示的默认信息。

                    controlBar:false

                }

            }

        },

        components:{

            videoPlayer

        }

}

</script>

<style>

    .videos{

        position: relative;

    }

    .videos .vjs-custom-skin > .video-js .vjs-big-play-button{

        background-color: rgba(0, 0, 0, 0.4);

        /* font-size: 30px; */

        border-radius: 50%;

        height: 40px;

        width: 40px;

        line-height: 40px;

        position: absolute;

        top:50%;

        left:50%;

        transform: translate(-50%,-50%);

        /* width: 50%; */

    }

</style>

(6)VideoList.vue里导入Videos组件,就可以生成视频了

// 视频列表里导入Videos视频组件

import  Videos  from '@/components/index/Video'

component:{ Videos }

使用videos组件:

<swiper-slide>

<div>

<!-- 播放视频的标签 -->

<videos>

</videos>

</div>

</swiper-slide>

3.3 多个视频列表的渲染

(1)网上找了4个待渲染的视频的链接,放入data(){return{xx}}

            dataList:[

                {

                id:"1",

                url:"http://video.jishiyoo.com/3720932b9b474f51a4cf79f245325118/913d4790b8f046bfa1c9a966cd75099f-8ef4af9b34003bd0bc0261cda372521f-ld.mp4"

                },

                {

                id:"2",

                url:"http://video.jishiyoo.com/1eedc49bba7b4eaebe000e3721149807/d5ab221b92c74af8976bd3c1473bfbe2-4518fe288016ee98c8783733da0e2da4-ld.mp4"

                },

                {

                id:"3",

                url:"http://video.jishiyoo.com/549ed372c9d14b029bfb0512ba879055/8e2dc540573d496cb0942273c4a4c78c-15844fe70971f715c01d57c0c6595f45-ld.mp4"

                },

                {

                id:"4",

                url:"http://video.jishiyoo.com/161b9562c780479c95bbdec1a9fbebcc/8d63913b46634b069e13188b03073c09-d25c062412ee3c4a0758b1c48fc8c642-ld.mp4"

                }

            ] 

(2)将上下滑动的视频内容按上述列表取出,将链接视频的内容item赋值给‘videoList’ 

      <swiper :options="swiperOption">

          <!-- 上下滑动的内容 -->

        <swiper-slide v-for="(item,index) in dataList" :key="index">

            <div>

                <!-- 将链接视频的内容item赋值给videoList -->

                <videos :videoList="item"></videos>  

            </div>

        </swiper-slide>


        <!-- <swiper-slide>            

            <div>

                <videos></videos>

            </div>

        </swiper-slide>

        <swiper-slide>slide1</swiper-slide>

        <swiper-slide>slide2</swiper-slide> -->

      </swiper>

(3)父子组件的传值,将‘videoList’数据传入Videos.vue中

props:['videoList'], //每个链接的视频

sources: [

                        {

                            src:this.videoList.url,   //修改显示视频的src

                            // src: 'http://video.jishiyoo.com/161b9562c780479c95bbdec1a9fbebcc/8d63913b46634b069e13188b03073c09-d25c062412ee3c4a0758b1c48fc8c642-ld.mp4',  // 路径

                            type: 'video/mp4'  // 类型

                        }, 

                    ],

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容