微信小程序 getBackgroundAudioManager无法播放

546 阅读1分钟

tts合成音频PC桌面端播放正常,但小程序端不能正常播放,提示{src: "", errCode: 10004, errMsg: "errCode:55, err:unknow format"},发现音频url中包含没有encode的空格,移除后可以正常播放。

测试环境播放正常后,本以为可以正常上线,结果切换到正式环境后真机仍然不能播放,而且Android和iOS报了不同的错,如下:

Android

{src: "", errCode: 10004, errMsg: "errCode:55, err:unknow format"}

iOS

{src: "", errCode: 10003, errMsg: "playerErrCode:7, systemErrCode:200002, domain:com.tencent.KSAudioPlayer.Cache, description:未能完成操作。...}

网上有人提到报错原因是headers中缺少content-length,最后在运维同学的帮助下发现nginx 默认返回的 chunked 的数据是没有 content-length的,更新nginx proxy中的http的协议,http1.0升级为http1.1后好了(参考 zh.wikipedia.org/wiki/%E5%88…

一顿排查后,深刻体会到了小程序中content-length的重要性。