uni-app video组件无法播放带网络地址的m3u8

uni-app video组件无法播放带网络地址的m3u8

如附件m3u8,如果m3u8中的ts链接是网络地址:https://s5.bfzycdn.com/video/fengshendiyibuchaogefengyun/HD1/0000000.ts无法播放。如果m3u8中的ts链接改为本地路径:0000000.ts,并将0000000.ts放到本地路径下,可以正常播放。

index.zip


更多关于uni-app video组件无法播放带网络地址的m3u8的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

同问题https://ask.dcloud.net.cn/question/181025

更多关于uni-app video组件无法播放带网络地址的m3u8的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是nginx转发的么?如果是,在nginx location中增加下面这个试试,在线就直接播放,不是直接下载的形式试试 default_type ‘application/octet-stream’;
add_header Content-disposition “attachment”;
add_header Access-Control-Allow-Origin *;

不是,是本地的m3u8视频无法播放

嗯?到底是本地的还是网络的不能?

本地的m3u8文件,里面的ts链接是网络地址呀。

回复 zfweihai: 如果是本地的话,app是不支持m3u8格式的,官方文档有说明的

回复 套马杆的套子: 是video的bug。

这是一个常见的跨域播放问题。m3u8中的网络TS文件无法播放通常是由于以下原因:

  1. 服务器未正确配置CORS(跨域资源共享)策略,导致浏览器拒绝加载跨域资源

  2. 视频服务器可能需要特定的请求头或认证信息

解决方案:

  1. 检查视频服务器是否配置了正确的CORS头:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
  1. 在uni-app中,可以尝试通过修改manifest.json配置:
"h5": {
  "devServer": {
    "proxy": {
      "/api": {
        "target": "https://s5.bfzycdn.com",
        "changeOrigin": true,
        "pathRewrite": {"^/api" : ""}
      }
    }
  }
}
回到顶部