收藏
回答

使用 InnerAudioContext 无法在真机上播放声音,为什么?

API:innerAudioContext 微信版本号:7.0.8 基础库版本号:2.8.1 代码片段:a07de76a27e3e7836c4ea39d72f75eda

使用云开发,获取fileId进行播放

回答关注问题邀请回答
收藏

19 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-11-01

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。然后扫一下小程序码,提供下截图

    2019-11-01
    有用
    回复 22
    • 月隐
      月隐
      2019-11-01
      我使用wx.getRecorderManager()进行语音录制,生成的文件通过wx.cloud.uploadFile进行上传,然后通过云函数监听数据集合变化拿到上传语音文件的fileId后,赋值给,通过wx.createInnerAudioContext()生成的innerAudioContext实例的src属性,然后进行播放。在小程序开发工具中可正常录音,正常播放,但是在iphone 7中的微信小程序可以正常录音,无法正常播放,代码片段 https://developers.weixin.qq.com/s/a07de76a27e3e7836c4ea39d72f75eda
      2019-11-01
      回复
    • 月隐
      月隐
      2019-11-01
      通过手机录制的音频,在小程序开发工具中可正常播放
      2019-11-01
      回复
    • 月隐
      月隐
      2019-11-01
      抱歉,代码片段分享错误,更新为 https://developers.weixin.qq.com/s/PxatpymW7tc3
      2019-11-01
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2019-11-01回复月隐
      也是无法正常使用,可以先自己导入代码片段(填写appid即可真机预览)检验是否可以正常使用以及复现问题
      2019-11-01
      回复
    • 月隐
      月隐
      2019-11-01
      这段代码片段依赖云开发,下载到本地后需要上传login函数 并且需要在数据库创建 chatroom 集合
      2019-11-01
      回复
    查看更多(17)
  • zxn
    zxn
    2019-12-19

    我也遇到了这个问题,我这边的情况是只要从服务器上抓个资源过来播放(src里填资源地址)都无法在真机上播放,具体情况是在iOS端服务器无法收到innerAudioContext发送的request,安卓端收到了request但是不知道为何并不能播放音频。


    目前的解决方案是用wx.downloadFile把服务器的文件下载到本地,然后src里填本地资源路径进行播放(感觉好蠢)

    2019-12-19
    有用 3
    回复
  • 陈生
    陈生
    03-26

    搜索了好久,一样的问题,手机里录制音频后,自动上传,格式mp3,电脑上模拟播放正常,手机播放无声。但是我的小程序另外设置的一个播放功能,是播放电脑上传到云上的音频mp3,那个播放功能就正常。

    03-26
    有用 2
    回复 1
    • 陈生
      陈生
      04-01
      我这里的问题解决了,是文件名问题。我的文件中带有中文,导致在手机上播放失败。大家检查自己的文件名是否符合小程序的命名规则。
      04-01
      2
      回复
  • 胡冰
    胡冰
    03-12

    你们看看innerAudioContext的src字符串里是否含空格,iOS下要encode一下,安卓和模拟器都没问题

    03-12
    有用 1
    回复 2
    • Silly
      Silly
      07-20
      请问这个encode操作具体是什么,本人新手,谢谢
      07-20
      回复
    • 胡冰
      胡冰
      07-20回复Silly
      urlencode()
      07-20
      回复
  • 周炬明
    周炬明
    02-27

    是不是音频路径没有encode,无法正确识别路径,可以getTempFileURL看下浏览器里能不能打开音频

    02-27
    有用 1
    回复 1
    • Silly
      Silly
      07-20
      请问音频路径encode是什么意思,本人新手
      07-20
      回复
  • Dust_2
    Dust_2
    04-11

    有进展了吗?

    04-11
    有用
    回复
  • 粽子
    粽子
    04-01

    解决了,是个BUG。

    单独实例设置obeyMuteSwitch无效,必须全局设置。

    wx.setInnerAudioOption({ obeyMuteSwitch: false });

    而且明确手机没有设置静音,但是设了才有声音。

    04-01
    有用
    回复 3
    • 月隐
      月隐
      04-01
      这种是解决在iOS中设置静音也可以播放的方法,注意审题
      04-01
      回复
    • 粽子
      粽子
      04-01回复月隐
      我知道,所以我说是BUG,必须这样设置才可以有声音。
      04-01
      回复
    • 粽子
      粽子
      04-01回复月隐
      我说了2个问题点,1这个属性全局设置才有效,2我手机明确没有静音却需要这个属性才能播放。
      04-01
      1
      回复
  • dd
    dd
    03-17

    System: iPhone, iOS 13.3.1, WeChat 7.0.12.19

    WeChatLib: 2.10.3 (2020.3.12 14:42:06)

    fileID要保留文件后缀,上传录音文件(.m4a),使用fileID能正常播放

    03-17
    有用
    回复
  • 墨卿
    墨卿
    02-22

    有解决办法了吗 我是ios播放没声音 开发工具也没声音 安卓有声音

    02-22
    有用
    回复 4
    • LWW
      LWW
      02-22
      一样的问题,唉
      02-22
      回复
    • 墨卿
      墨卿
      02-22回复LWW
      我是用了api处理静音模式 ios好了。
      02-22
      回复
    • 墨卿
      墨卿
      02-22回复LWW
      wx.setInnerAudioOption({ obeyMuteSwitch: false });//解决没有声音的问题 ios用户模式 把手机铃声改成静音模式了 就会那样
      02-22
      回复
    • Silly
      Silly
      07-20回复墨卿
      请问这条代码写在哪里,本人新手,请详细说明一下,十分感谢
      07-20
      回复
  • 老夫的少女心
    老夫的少女心
    02-12

    请问楼主解决了吗 我也遇见了开发者工具播放没问题 但是真机播放不了 以前是没问题的

    02-12
    有用
    回复

正在加载...

登录 后发表内容
问题标签