【vue】前端页面点击按钮弹窗播放m3u8格式视频

最终效果:

1.表格操作列

javascript 复制代码
<el-table ref="tables" v-loading="loading" :data="list"  :default-sort="defaultSort" @sort-change="handleSortChange" border>
      <el-table-column label="id" align="center" prop="id" />
      <el-table-column label="第几集" align="center" prop="nPlay" />
      <el-table-column label="播放地址" align="center" prop="playUrl" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            icon="el-icon-info"
            type="text"
            size="small"
            @click.stop="initVideo(scope.row.playUrl,scope.row.nPlay)"
          >播放视频</el-button>
        </template>
      </el-table-column>
    </el-table>

2.initVideo方法

javascript 复制代码
    data(){
        return{
          dialogUrl:'',
          videoid:undefined,
          videoName:''
        }
    }

    initVideo(url,nPlay) {
      this.title = '《'+this.videoName+'》 第'+nPlay+'集';
      this.dialogUrl = '/video.html?'+url;
      this.open = true;
    },

3.弹出层代码

javascript 复制代码
    <el-dialog
      :title="title"
      :visible.sync="open"
      width="50%"
      class="showAll_dialog"
      :modal='false'
      center>
      <iframe :src="dialogUrl" width="95%" height="95%" style="border: medium none;"></iframe>
    </el-dialog>

4.showAll_dialog样式

css 复制代码
<style lang="scss" scoped>
.showAll_dialog {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  ::v-deep .el-dialog {
    margin: 0 auto !important;
    height: 95%;
    overflow: hidden;
    background-color: white;
    .el-dialog__body {
      position: absolute;
      left: 0;
      top: 54px;
      bottom: 0;
      right: 0;
      z-index: 1;
      overflow: hidden;
      overflow-y: auto;
      // 下边设置字体,我的需求是黑底白字
      color: white;
      line-height: 30px;
      padding: 0 15px;
    }
  }
}
</style>

5.第2步跳转的video.html页面代码,用dplayer播放的,放在项目根目录的public文件夹即可

html 复制代码
<!DOCTYPE html>
<html>

<head>
    <title>dplayer播放m3u8</title>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="https://cdn.staticfile.org/hls.js/1.1.2/hls.min.js"></script>
    <script src="https://cdn.staticfile.org/dplayer/1.26.0/DPlayer.min.js"></script>
    <style>
        #dplayer {
            width: 50%;
            /*height: 500px;*/
        }
        *{
            margin: 0;
            padding: 0;
        }
        /* 父容器样式 */
        .container{
            height: 100%;
            background-color: white;
        }
        /* 子容器样式 */
        .son{
            background-color: white;
            /* 水平垂直居中 */
            margin: 0px auto;
        }
    </style>
    <script>
        function init() {
            var str=location.href; //取得整个地址栏
            var url=str.split("?")[1]
            console.log('=====================')
            console.log(url)
            url = url.replaceAll('http:','https:');
            const dp = new DPlayer({
                element: document.getElementById('dplayer'),
                video: {
                    //  pic: videoInfo.img, // 封面
                    url: url,  //此处可以是远程的url,也可以是本地的文件
                    type: 'customHls',
                    customType: {
                        customHls: function (video, player) {
                            const hls = new Hls()
                            hls.loadSource(video.src)
                            hls.attachMedia(video)
                        }
                    }
                }
            })
        }
    </script>
</head>

<body onload="init()">
<div class="container">
    <div id="dplayer" class="son"></div>
</div>
</body>
</html>
相关推荐
智能直播10 分钟前
RK3518:1.5G 内存 + 8G 存储,如何跑起硬件编解码、Web、AI 识别、绿幕特效
前端·人工智能·5g
掘金酱2 小时前
【10.24 特别活动】AI 时代,程序员的新饭碗在哪里?
前端·人工智能·后端
excel2 小时前
多进程环境下使用 PM2 部署 Socket.IO:需要注意什么
前端
IT_陈寒2 小时前
Redis的原子性竟然失效了?记一次分布式锁翻车实录
前端·人工智能·后端
2601_965449082 小时前
开源工具做推广没预算?AI自动生成宣传视频的方案
人工智能·开源·音视频
揽秀亭长3 小时前
视频转文字如何实现?四种方式的工作流与对比
音视频
AI视频工具指南3 小时前
文字怎么变成视频?同一地点的几个画面怎样接起来
人工智能·aigc·音视频
时间的情敌3 小时前
《回顾 2018 前端:Vue2 成熟期,Webpack4 发布,PWA 大火》
前端
Java后端的Ai之路4 小时前
前端技术Vue-09-webpack-vuejs-实战
前端·vue.js·webpack
LMT流氓兔4 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain