相关链接:https://blog.csdn.net/qq_40963664/article/details/79883159

前提: 因为业务需要将视频旋转,所以用了vue-video-player

一、安装

npm install vue-video-player --save

二、引入样式   

// main.js
// 第一个是videoJs的样式,后一个是vue-video-player的样式,因为考虑到我其他业务组件可能也会用到视频播放,所以就放在了main.js
require('video.js/dist/video-js.css')
require('vue-video-player/src/custom-theme.css')

//把VueVideoPlayer导入并挂在到vue上
import VideoPlayer from 'vue-video-player'
import 'videojs-flash' // 引入才能播放rtmp视频
import 'videojs-contrib-hls' // 引入才能播放m3u8文件
Vue.use(VideoPlayer);

三、写业务

    <video-player class="video-player vjs-custom-skin"
     ref="videoPlayer"
     :playsinline="true"
     :options="playerOptions"
     @play="onPlayerPlay($event)"
     @pause="onPlayerPause($event)">
    </video-player>
// 参数
const playerOptions = {
     // playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度 如果是用rtmp播放是没有的,要删掉techOrder/flash/html5属性
        autoplay: true, // 如果true,浏览器准备好时开始回放。
        muted: false, // 默认情况下将会消除任何音频。
        loop: false, // 导致视频一结束就重新开始。
        preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
        language: 'zh-CN',
        aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例     如"16:9"或"4:3")
        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
        techOrder: ['flash', 'html5'], // 兼容顺序
        flash: { hls: { withCredentials: false }}, // 可以使用rtmp视频
        html5: { hls: { withCredentials: false }}, // 可以使用m3u8视频
        isFullscreen: true,
        sources: [{
            type: 'video/flv', // 播放flv 'rtmp/mp4': 播放rtmp 写两个对象好像不能播放
            src: src // 你的视频地址(必填)
        }],
        width: document.documentElement.clientWidth,
        notSupportedMessage: '此视频暂无法播放,请稍后再试' // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
        // controlBar: {
        // timeDivider: true,
        // durationDisplay: true,
        // remainingTimeDisplay: false,
        // fullscreenToggle: true //全屏按钮
        // }
      }
      this.playerOptions = playerOptions

四、旋转

css样式

.video-screen1{
    transform: rotate(90deg) scale(1.5);
}
.video-screen2{
    transform: rotate(180deg);
}
.video-screen3{
    transform: rotate(270deg) scale(1.5);
}
.video-player{
    overflow: hidden;
}

五、遇到的问题

播放rtmp流时 sources 里面填rtmp/mp4

播放flv流时 sources里面填video/flv

sources 里面填多个对象好像没法播放

playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度 如果是用rtmp播放是没有的,要删掉techOrder/flash/html5属性

Logo

前往低代码交流专区

更多推荐