默认uni-app打包进去的H5在Android上是没法播放.m3u8直播流的,控制台或报错

Uncaught (in promise) DOMException: The element has no supported sources.

能够用hls.js来解决,在App.vue的onLaunch办法中减少加下列代码即可:

// 上面的代码减少对Android H5播放m3u8反对// #ifdef H5if (uni.getSystemInfoSync().platform != 'ios') {    var script = document.createElement("script");    script.src = "https://cdn.jsdelivr.net/npm/hls.js@latest";    script.onload = function() {        let init = function(video) {            if (!video.getAttribute('hls-inited')) {                let hls = null;                let load = function() {                    let src = video.src;                    if (!src || src.indexOf('.m3u8') < 0)                        return                    if (!hls) {                        hls = new Hls();                        hls.attachMedia(video);                    }                    hls.loadSource(src);                }                video.addEventListener("error", function() {                    load();                }, false);                video.addEventListener("DOMNodeRemovedFromDocument",function(){                    if(hls){                        hls.destroy()                    }                }, false);                video.setAttribute('hls-inited', 'ok');            }        }        document.getElementsByTagName("video").forEach(init)        document.body.addEventListener("DOMNodeInserted", function(e) {            let ele = e.relatedNode;            if (ele.tagName === 'VIDEO') {                init(ele);            }            ele.getElementsByTagName("video").forEach(init)        })    }    var s = document.getElementsByTagName("script")[0];    s.parentNode.insertBefore(script, s);}// #endif