小编最近再给自己做个小玩具,忽然遇到了本地媒体资源无法播放,但是https的视频是可以播放的,本地的媒体资源比如http://192.168.0.110:8081/upload/video/shortvideo/浅影啊-辞九门回忆.mp4,通过百度和询问ChatGpt,尝试修改manifest.json文件等,依旧无法解决,但是此媒体资源在电脑端是可以播放的。
视频能够播放说明视频的地址是没有问题的,所以小编就把地址栏的地址复制下来发到手机上,但复制出来后发现,复制的结果是这样的
但是这样的地址在手机上是可以打开的,所以把这个地址放在uniapp的video的src里面,就可以播放了,到这里,小编忽然想起来,像这种地址栏带有中文的地址,必须要将中文做转码才可以,于是迅速写了个地址转码的方法,将所有视频地址都做成转码后的地址,然后uniapp运行在手机上的效果就可以播放了:
convertUrl(originalUrl) {
const urlParts = originalUrl.split('/');
const protocol = urlParts[0];
const host = urlParts[2];
const path = urlParts.slice(3).join('/');
const encodedPath = encodeURIComponent(path);
const newUrl = `${protocol}//${host}/${encodedPath.replace(/%2F/g, '/')}`;
return newUrl;
},
做程序员经常这样,很简单的问题有时候就会思来想去想不明白,耽搁很久很久,好了,以上关于uniapp解决访问本地网络媒体资源的播放问题到此就结束了,欢迎留言讨论。