收藏
回答

Android 系统下无法通过蓝牙耳机录音(iOS可以)

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.getRecorderManager() 客户端 Android 6.6.6 2.0.5



手机连接蓝牙耳机(蓝牙耳机能正常SCO通话)的情况下,在iOS上小程序调用录音API时可以从蓝牙耳机录音,但是同样的小程序在Android平台上录音不能从蓝牙耳机录音。以下是代码片段


capture: function () {
 const recorderManager = wx.getRecorderManager()
 recorderManager.onStart(() => {
   console.log('recorder start')
 })
 recorderManager.onResume(() => {
   console.log('recorder resume')
 })
 recorderManager.onPause(() => {
   console.log('recorder pause')
 })
 recorderManager.onStop((res) => {
   console.log('recorder stop', res)
   const { tempFilePath } = res
   this.setData(
     { recordFile: tempFilePath}
   )
   console.log('开始播放 tempFilePath ' + tempFilePath)
 })
 recorderManager.onFrameRecorded((res) => {
   const { frameBuffer } = res
   console.log('frameBuffer.byteLength', frameBuffer.byteLength)
 })
 const options = {
   duration: 3000,
   sampleRate: 44100,
   numberOfChannels: 1,
   encodeBitRate: 192000,
   format: 'mp3',
   frameSize: 50
 }
 recorderManager.start(options)
},



更新:

代码片段wechatide://minicode/a33BgPmF6QZB

最后一次编辑于  2018-05-31
回答关注问题邀请回答
收藏

5 个回答

  • Tummy
    Tummy
    2018-06-05

    这里想问一下android 原生app能录音么?

    2018-06-05
    有用
    回复 7
    • 施瓦辛格
      施瓦辛格
      2018-06-05

      能,且微信语音电话可以走蓝牙耳机。 另外想问一下,这个帖子我无法回复了,怎么回事呢?是不是需要把帖子的状态改变一下

      2018-06-05
      回复
    • Tummy
      Tummy
      2018-06-05回复施瓦辛格

      原生App是设置了audiosource么?小程序默认是Mic的(Android侧).

      有条件原生app代码关键贴一下?我看看区别.

      2018-06-05
      回复
    • Tummy
      Tummy
      2018-06-05回复施瓦辛格

      应该是帖子的状态问题吧...


      2018-06-05
      回复
    • 施瓦辛格
      施瓦辛格
      2018-06-05回复Tummy

      这里有Android的蓝牙录音的DEMO(含有源码):https://blog.csdn.net/kangear/article/details/38780185

      Android要想从蓝牙录音不是设置了audiosource,是将当前模式改成通话模式。这样系统层就自动从蓝牙录音了,这个是我早期总结的文档了,不知新版本有什么变化没有。

      AudioManager mAm = ( AudioManager ) getSystemService(Context.AUDIO_SERVICE); 
      mAm.setMode(AudioManager.MODE_IN_CALL); 
      mAm.setBluetoothScoOn(true); 
      mAm.startBluetoothSco();


      2018-06-05
      回复
    • Tummy
      Tummy
      2018-06-06回复施瓦辛格

      如果是需要修改模式才能改成通话模式的话,现阶段是不能做到的。

      小程序Android侧用的是AudioRecorder去录的音。


      我们先内部看看这个要怎么支持合适。

      2018-06-06
      回复
    查看更多(2)
  • Zany
    Zany
    2020-03-05

    我现在也遇到了同样的问题,不知道该问题是否已有解决方案?

    2020-03-05
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2018-05-11

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-05-11
    有用
    回复 2
  • 施瓦辛格
    施瓦辛格
    2018-05-09

    问题可能没有描述清楚,在Android上也想从蓝牙耳机录音,但是只能从手机自带MIC录音,onError没有报任何错误;在iOS上,如果手机连上了蓝牙耳机,小程序里调用录音API时,会自动从蓝牙耳机录音。推测是Android上调用录音API时,微信没有根据连接了蓝牙耳机的情况把音频通道调成AudioManager.MODE_IN_CALL状态,因为原生Android APP设置成了AudioManager.MODE_IN_CALL就可以从蓝牙耳机录音了。

    2018-05-09
    有用
    回复 1
    • 糖
      04-16
      请问决绝了吗
      04-16
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2018-05-09

    你好,你可以打印onError的回调错误信息,查看是什么报错信息

    2018-05-09
    有用
    回复 1
    • 糖
      04-16
      请问, 安卓无法使用蓝牙的麦克风进行录音, 是否是因为我使用的是单通道呢
      04-16
      回复
登录 后发表内容