vue 视频播放


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:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  sources: [],
  //poster: require("/profile/upload/2023/11/21/1700552582344_20231121154319A002.mp4"), //你的封面地址
  notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  controlBar: {
    timeDivider: true,
    durationDisplay: true,
    remainingTimeDisplay: false,
    fullscreenToggle: true, //全屏按钮
  },
},

<el-dialog title="视频" :visible.sync="spopen" width="1200px" append-to-body>
  <video-player
    ref="videoPlayer"
    class="video-player vjs-custom-skin"
    :playsinline="true"
    :options="playerOptions"/>
  <div slot="footer" class="dialog-footer">
    <el-button @click="spcancel">关 闭</el-button>
  </div>
</el-dialog>
click(row) {
  this.fjform = row;
  console.log(row.fjlj);
  if(row.fjlx == 'SP'){
    this.playerOptions.sources = [
      {
        type: "video/mp4",
        src: row.fjlj, //视频url地址
      },
    ];
    this.spopen = true;
  }else{
    this.tpopen = true;
  }
},

### 集成视频播放组件到 VueVue 中实现视频播放功能可以通过多种方法完成,具体取决于需求和技术栈的选择。以下是两种常见的方案:一种是基于 Video.js 的集成[^1],另一种则是使用阿里云的 Aliplayer 组件[^2]。 #### 使用 Video.js 实现视频播放 对于需要高度自定义和灵活性的情况,可以考虑使用 Video.js 库来构建视频播放器。以下是一个简单的实现流程: 1. **安装依赖** 安装 `video.js` 和其对应的 CSS 文件。 ```bash npm install video.js --save ``` 2. **引入资源文件** 在项目的入口文件或者单独的模块中加载必要的样式表。 ```javascript import 'video.js/dist/video-js.css'; import videojs from 'video.js'; ``` 3. **模板配置** 创建一个 HTML 元素作为视频容器,并绑定数据源。 ```html <template> <div> <video ref="myVideo" class="video-js vjs-default-skin"></video> </div> </template> ``` 4. **初始化播放器实例** 利用生命周期钩子函数,在组件挂载完成后初始化 Video.js 播放器。 ```javascript export default { mounted() { this.player = videojs(this.$refs.myVideo, { controls: true, autoplay: false, sources: [{ src: 'https://example.com/path/to/your-video.mp4', type: 'video/mp4' }] }); }, beforeDestroy() { if (this.player) { this.player.dispose(); } } }; ``` --- #### 使用阿里云 Aliplayer 实现视频播放 如果目标平台涉及流媒体服务或特定厂商支持,则可以直接采用官方推荐的方式——例如阿里云提供的 Aliplayer SDK。 1. **环境准备** 确保已获取有效的播放凭证 (`playauth`) 及其他必要参数(如视频 ID)。 2. **动态加载脚本** 将 Aliplayer 所需的核心 JavaScript 脚本嵌入页面中。 ```html <script charset="utf-8" type="text/javascript" src="//g.alicdn.com/de/prismplayer/2.9.10/aliplayer-min.js"></script> ``` 3. **编写逻辑代码** 基于 Vue 生命周期管理弹窗状态以及播放器实例化过程。 ```javascript methods: { openDialogAndInitAliPlayer() { const playerInstance = new Aliplayer({ id: 'J_prismPlayer', // DOM节点ID vid: '6405be34fe984a16a3253b95b71e29dd', // 替换为实际VID playauth: '', // 设置有效授权字符串 width: '100%', height: '450px', autoplay: false, isLive: false, rePlay: false, preload: true, controlBarVisibility: 'hover', useH5Prism: true }, () => { console.log('Aliplayer 初始化完毕'); }); } } ``` 4. **结合 el-dialog 显示** 如果希望以模态框形式展示视频内容,可通过监听对话框打开事件触发上述方法调用。 ```html <el-button @click="dialogVisible = true">观看视频</el-button> <el-dialog :visible.sync="dialogVisible"> <div id="J_prismPlayer"></div> <!-- 插槽位置 --> </el-dialog> ``` --- ### 总结 无论是选用通用型框架 Video.js 还是针对特殊场景优化过的 Aliplayer 解决方案,都可以很好地满足不同层次的需求。前者适合追求极致定制化的开发者群体;后者则更倾向于快速接入已有生态系统的业务方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值