0


【uniapp】(使用webview)引入Dplayer.js以及hls.js用来解析播放m3u8直播流视频

在这里插入图片描述

1、在template中添加

<template><view><uni-navbarfixed="true"title="监控查阅"leftIcon="back"></uni-navbar><viewclass="pd-lr-10 pd-t-20"><!-- #ifdef H5 --><divid="dplayer"class="wp-100 h-550"></div><!-- #endif --></view></view></template>

在manifest.json文件源码视图中设置 app-plus -> kernel -> ios 的值为 “WKWebview"或"UIWebview”:

"app-plus":{"kernel":{"ios":"WKWebview"//或者 "UIWebview"},// ...}

2、在script中添加方法:(App&H5端)

<script>var statusBarHeight = uni.getSystemInfoSync().statusBarHeight
//引入 hls与dplayer 用于解析播放视频 // #ifdef H5import Hls from'@/dplayer/hls.js'import Dplayer from'@/dplayer/DPlayer.min.js'// #endifimport{ camera_info }from'@/apis/sheep.js';var wv;//计划创建的webviewexportdefault{data(){return{
            id:'',
            info:{},
            dp:{},
            weburl:'/hybrid/html/videoPlay.html',
            editInterval:null}},onLoad(option){if(option.id){this.id=option.id }},mounted(){camera_info({id:this.id}).then(res=>{if(res.code==1){this.info=res.data;// #ifdef APP-PLUSthis.weburl+='?data='+encodeURIComponent(JSON.stringify({"apiUrl": res.data.url }));
                wv = plus.webview.create("","custom-webview",{'kernel':'WKWebview',
                    plusrequire:"none",//禁止远程网页使用plus的API,有些使用mui制作的网页可能会监听plus.key,造成关闭页面混乱,可以通过这种方式禁止'uni-app':'none',//不加载uni-app渲染层框架,避免样式冲突})
                wv.loadURL(this.weburl)var currentWebview =this.$scope.$getAppWebview()//此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效setTimeout(function(){
                    currentWebview.append(wv);// wv = currentWebview.children()[0]
                    wv.setStyle({top:150+statusBarHeight, height:300})},100);//如果是页面初始化调用时,需要延时一下// #endif// #ifdef H5this.dp =newDplayer({//播放器的一些参数
                    container: document.getElementById('dplayer'),
                    autoplay:false,//是否自动播放
                    theme:'#FADFA3',//主题色
                    loop:true,//视频是否循环播放
                    lang:'zh-cn',
                    screenshot:false,//是否开启截图
                    hotkey:true,//是否开启热键
                    preload:'auto',//视频是否预加载
                    volume:0.7,//默认音量
                    mutex:true,//阻止多个播放器同时播放,当前播放器播放时暂停其他播放器
                    video:{
                        url: res.data.url,// 视频地址
                        type:'customHls',
                        customType:{customHls:function(video, player){const hls =newHls()//实例化Hls  用于解析m3u8
                                hls.loadSource(video.src)
                                hls.attachMedia(video)}},},});// #endif}else{this.toast(res.msg);}});},
    methods:{}}</script>

3、资源

在这里插入图片描述

4、App端 - hybrid\html\videoPlay.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/><metahttp-equiv="X-UA-Compatible"content="ie=edge"/><title></title></head><body><divid="dplayer"style="width: 100%;height: 275px;"></div></body></html><scriptsrc="flv.min.js"></script><scriptsrc="hls.min.js"></script><scriptsrc="DPlayer.min.js"></script><script>functiongetQuery(name){let reg =newRegExp("(^|&)"+ name +"=([^&]*)(&|$)");let r = window.location.search.substr(1).match(reg);if(r !=null){returndecodeURIComponent(r[2]);}returnnull;}var data =JSON.parse(getQuery('data'));// console.log(data.apiUrl)const dp =newDPlayer({
        container: document.getElementById('dplayer'),
        autoplay:true,//是否自动播放
        theme:'#FADFA3',//主题色
        loop:true,//视频是否循环播放
        lang:'zh-cn',
        screenshot:false,//是否开启截图
        hotkey:true,//是否开启热键
        preload:'auto',//视频是否预加载
        volume:0.7,//默认音量
        mutex:true,//阻止多个播放器同时播放,当前播放器播放时暂停其他播放器
        video:{
            url: data.apiUrl,// url: 'https://open.ys7.com/v3/openlive/C18246081_1_1.m3u8?expire=1698996665&id=640211289168486400&t=082bb0bea59f5f87f692fa9376663cccd5ffaa4b0c622a9e62fae12664cc39d7&ev=100',
            type:'customHls',
            customType:{customHls:function(video, player){const hls =newHls()
                    hls.loadSource(video.src)
                    hls.attachMedia(video)
                    hls.on(Hls.Events.MANIFEST_PARSED,function(){
                        video.play()})},},},})</script>

本文转载自: https://blog.csdn.net/Minions_Fatman/article/details/134420295
版权归原作者 Minions_Fatman 所有, 如有侵权,请联系我们删除。

“【uniapp】(使用webview)引入Dplayer.js以及hls.js用来解析播放m3u8直播流视频”的评论:

还没有评论