收藏
回答

ios播放音频出现错误

errCode:10003

errMsg:playerErrCode:7, systemErrCode:200002, domain:com.tencent.KSAudioPlayer.Cache,

description:未能完成操作。(“com.tencent.KSAudioPlayer.Cache”错误 200002。)




这个是报错信息,有官方的错误码对照表吗?就一个文件错误,完全懵。

安卓可以播放,调试器可以播放,IOS报错


跪求各路大神帮忙

一些音频可以播,一些不可以。官方可以给出一个音频标准出来么?



发现问题所在了,服务器输出文件的时候,头部信息缺少了长度等信息

最后一次编辑于  2018-08-29  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 礼貌
    礼貌
    01-07

    先谢谢楼主,至少说了问题的原因(虽然不够明显):是response的header,缺少了Content-Length。


    (供其他人参考的)解决办法:

    (mp3)音频文件(url)所在后台接口中,确保返回的header带Content-Length即可

    比如此处Flask后台中,改为:

    import io
    from flask import send_file
     
    def sendFile(fileBytes, contentType, outputFilename, asAttachment=True):
        fileLength = len(fileBytes)
        responseFile = send_file(
            io.BytesIO(fileBytes),
            mimetype=contentType,
            as_attachment=asAttachment,
            attachment_filename=outputFilename
        )
        responseFile.headers["Content-Length"] = fileLength
        return responseFile


    即可。


    感慨:

    1. 微信的小程序中,iOS的sdk中,测试不够充分,没有测试到header没有Content-Length的情况,会导致此处报错,无法播放。

    2. 相比之下,Android中可以正常播放,说明安卓的sdk的兼容性,在后台音乐播放方面,更好。

    3. 楼主,其实可以把事情做得更完美:把如何解决的相关代码贴出来,供其他人参考 -》 也方便其他人更快速搞懂错误的根本原因,而避免发生:我第一次看到上面的描述,直接忽略掉了。直到后来,第二次看到,才注意到楼主的解决办法。。。

    01-07
    赞同 2
    回复
  • 飞天猫
    飞天猫
    2018-08-25

    求官方音频标准

    2018-08-25
    赞同 1
    回复 2
    • 照明胧
      照明胧
      2018-08-25

      接口api下面有错误码的意思

      2018-08-25
      回复
    • 礼貌
      礼貌
      01-07回复照明胧

      错误码,在此处,对于此问题的根本原因,几乎没有任何帮助:

      官网中所找到的错误码 10003

      BackgroundAudioManager.play()

      只说了是“文件错误”,但是具体是什么方面的错误,只字未提

      -》往往会误以为mp3编码格式等方面不支持

      -》很难推断出是response的header缺少Content-Length导致此问题的

      -》所以还是官网文档不够精确。属于不大不小的坑了。

      01-07
      回复