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的重要性。