HarmonyOS 鸿蒙Next avPlayer 无法解析携带参数的 m3u8地址

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

我们需要播放一个点播视频 地址类似这样

http://xxx.aliyuncs.com/a/playlist.m3u8?OSSAccessKeyId=LTAIEA0DCRivb3Ae&Expires=1732895061&Signature=sQm5UMjj5znMaq4XkbPIhVYofiU%3D&x-oss-process=hls/sign

需要访问 阿里云 OSS 可以看到后边携带了一些参数 用于鉴权和校验

这是代码 参考官方案例

let avPlayer: media.AVPlayer = await media.createAVPlayer();
this.setAVPlayerCallback(avPlayer!!);
this.isSeek = true;
avPlayer.url = cloudUrl

然后报错如下

Invoke avPlayer failed, code is 5400103, message is IO Error: unkown error

能否给一个详细错误 只给了一个IO错误 IO错误 范围大了去了 这让我怎么排查? 具体是请求失败?还是解析失败?还是下载失败?还是什么问题?

我再次尝试了其他连接 比如一些测试地址

http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8
https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/hls/xgplayer-demo.m3u8

等 一些 .m3u8后 不携带参数的 播放地址 均可以正常播放

再次尝试

后面又怀疑是html转义问题 将连接里html的字符转移后 还是不行

后边又尝试了 Video 组件 还是不行

该视频连接在其他播放器比如 potplayer 和android原生videoview中均可正常解析

2 回复
当前鸿蒙播放带有密钥的m3u8在线地址有部分不支持

针对HarmonyOS鸿蒙Next中AVPlayer无法解析携带参数的m3u8地址的问题,这通常是由于AVPlayer在处理带有特定参数或需要鉴权的m3u8文件时存在限制。以下是一些可能的解决方案:

  1. 预处理m3u8文件

    • 尝试通过HTTP客户端(如fetch、XMLHttpRequest等)获取m3u8文件,并在客户端处理完鉴权或参数后,再将处理后的URL提供给AVPlayer。
  2. 检查参数格式

    • 确保m3u8地址中的参数格式正确,没有遗漏或多余的字符,这有助于AVPlayer正确解析。
  3. 更新AVPlayer

    • 确保你使用的是最新版本的AVPlayer,因为新版本可能修复了旧版本中存在的一些bug。
  4. 参考官方文档

    • 查阅HarmonyOS的官方文档,了解AVPlayer对m3u8文件的支持情况,以及是否有特定的配置或限制。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部