收藏
回答

安卓机播放声音导致微信随机闪退

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小游戏 Bug InnerAudioContext.play() 客户端 7.0.3 2.6.4

- 当前 Bug 的表现

播放特定声音文件,在安卓机上随机闪退。

- 预期表现

   正常播放声音

- 复现路径

    创建一个innerAudioContext反复播放例子中的给定的声音文件,一般5-10秒内就会使微信闪退,给出的代码片段约有60%概率会引发闪退。

- 提供一个最简复现 Demo

代码片段:https://developers.weixin.qq.com/s/oNyh98mx7u7o


实测会发生闪退的机型列表,全部为华为的机器。


最后一次编辑于  03-25
回答关注问题邀请回答
收藏

2 个回答

  • 南浪
    南浪
    08-08

    楼主你好,请问你最后解决这个问题了吗

    08-08
    赞同
    回复
  • jd
    jd
    03-29

    发现是使用安卓系统组件android.media.MediaExtractor.readSampleData(Native Method)解码读取文件流时发生的异常,

     java.lang.IllegalArgumentException

            at android.media.MediaExtractor.readSampleData(Native Method)


    从而导致调用MediaExtractor relase释放资源时发生系统底层的JNI crash,

    可能是文件的问题,建议试试重编码一下

    03-29
    赞同
    回复 3
    • 朱笠舟
      朱笠舟
      03-29

      感谢官方反馈。

      但是我们这边各种编码器都试过,总是会有一部分文件随机出现类似问题。

      想问下这个报错能否在微信层面catch住,哪怕播放不出声音,至少避免闪退。现在我们添加音效进游戏总是要提心吊胆,测试也没法覆盖所有安卓机型,生怕产生大量闪退。


      另外如果确实是文件编码问题,为什么不是在播放第一遍的时候就crash呢?而且声音还能正常播放出来,还放了很多遍之后才出现问题。

      有没有可能是innerAudioContext传递的数据流在反复播放过程中发生了变化?

      03-29
      回复
    • jd
      jd
      04-04回复朱笠舟

      现在还不确定是什么原因导致的问题,我们是解码过程出错的,这个错误是catch不了的,是JNI的crash,

      04-04
      回复
    • 南浪
      南浪
      08-04
      你好,我们也是发现了很多用户有这种问题,我们测试机上可以必现,麻烦官方尽快解决下哈,太影响体验了,直接卡死。
      08-04
      回复