云开发使用 cloud_id 作为音频 src 时没有对 url 编码?
发布于 5 年前 作者 yina 12329 次浏览 来自 问答
const backgroundAudioManager = wx.getBackgroundAudioManager()
backgroundAudioManager.src = '' // 一个文件名中带有空格的 cloud_id

当 cloud_id 作为 src 的时候,小程序调用了一个内部的 API 把 cloud_id 转成了 http url。但是转换后的 url 没有对空格编码,导致 iOS 端无法解析这个地址,在 onError 回调中抛了一个 errCode 10002 的错。

实际上 coverImgUrl 属性也有这个问题,但是 onError 捕捉不到,只是表现为图片无法显示。

直接对 cloud_id 编码的话也是不行的。

2 回复

yestoday和yes today是两个意思,所以空格不是可有可无。

空格毕竟也是 url 里的合法字符,这都不支持的话那不如干脆别有**直接使用 cloud_id 作为 src**这个功能。但是如果官方确实不打算支持,那么暂时能想到两种解决方法。

一是抛弃 cloud_id,用 cloud_id 拼接出 url。

另一个是 onError 回调里取 errCode 和 src 两个参数,判断 errCode,把 src 编码后重新赋值一遍。但是 coverImgUrl 也有这个问题,这意味着最坏需要走两次这个流程。。

回到顶部