收藏
回答

wx.createAudioContext录音只能记录1分钟

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug AudioContext 客户端 7.0.3 2.6.1 [228]

- 当前 Bug 的表现(可附上截图)

在工具中一切正常,工具上的真机模拟也没有问题,但是在终端测试时,录音录取三分钟后,在临时文件中播放音频文件只有一分钟左右的大小,目前看就是700KB。


- 预期表现

按正常设置,记录录音文件大小。


- 复现路径


- 提供一个最简复现 Demo


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

1 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    02-21

    你好,从基础库 1.6.0 开始,该接口停止维护,请使用 wx.createInnerAudioContext 代替

    https://developers.weixin.qq.com/miniprogram/dev/api/wx.createAudioContext.html


    02-21
    赞同
    回复 13
    • 阔人
      阔人
      02-21

      不好意思,我的标题写错了。我使用的是

      RecorderManager这个API,上面的options

      是start方法的参数,在模拟器里面是正常的,但是测试的android手机只能录制成功一分钟,实际操作的效果是可以录制三分钟的,但是录制完成播放的时候,缓存文件只有一分钟的内容。

      02-21
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      02-21回复阔人

      麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      02-21
      回复
    • 阔人
      阔人
      02-21回复社区技术运营专员-灵芝

      MI NOTE LTEarmeabi-v7a

      23

      7.0.3


      代码片段:

      const recorderManager = wx.getRecorderManager();

      start: function (e) {

      var timeStart=e.timeStamp

      console.log("timeStart:"+timeStart)

      //开始录音    

      const options = {

      duration: 180000,//指定录音的时长,单位 ms 3分钟

      sampleRate: 16000,//采样率

      numberOfChannels: 1,//录音通道数

      encodeBitRate: 96000,//编码码率

      format: 'mp3',//音频格式,有效值 aac/mp3

      frameSize: 50,//指定帧大小,单位 KB

      }

      recorderManager.start(options);

      this.setData({ timeStart: timeStart })

      recorderManager.onStart(() => {

      console.log('recorder start');

      wx.showLoading({

      title: '录音中',

      })

      })

      },

      stop: function (e) {

      //结束录音

      var that = this;

      var timeOut=e.timeStamp;

      wx.hideLoading();

      recorderManager.stop()

      recorderManager.onStop((res) => {

      wx.showToast({

      title: '录音已结束',

      })

      setTimeout(function () {

      wx.hideToast();

      }, 2000)

      console.log('recorder stop', res)

      const { tempFilePath } = res

      that.setData({

      tempFilePath: res.tempFilePath,

      timeOut: timeOut,

      timeLength:(timeOut-that.data.timeStart)

      })

      })

      },


      02-21
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      02-21回复阔人

      你好,麻烦提供一下这种格式的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      02-21
      回复
    • 阔人
      阔人
      02-23回复社区技术运营专员-灵芝

      你好,由于代码中有业务逻辑,不便共享,请问有思考方向吗?

      02-23
      回复
    查看更多(8)