收藏
回答

录音管理器 recorderManager.onStop监听事件问题

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 recorderManager.onStop 微信iOS客户端 目前都是这个问题 目前都是这个问题

问题说明:

    1.A、B两个页面都调用录音接口,每个页面都有各自的recorderManager.onStop监听事件,里面写着不同的业务逻辑。

    2.A、B录音结束时总是调用B页面的recorderManager.onStop监听事件,导致无法继续处理A页面的业务逻辑。


我预期的全局唯一录音管理器是:

    A页面调用录音功能后,B页面也调用录音功能,应该立即结束A页面的录音,同时打开B页面的录音功能,并且每个页面的监听事件能够处理单独的逻辑。


问题复现:

    1.在A、B页面都写上recorderManager.onStop监听事件,里面写着不同的业务逻辑,例如:分别输出页面1、2两个数字。


说明:

    这个问题是我处理起来很痛苦,因为如果我有10个页面调用录音功能,那么,我要把10个页面的处理逻辑都写在同一个recorderManager.onStop中,这样会导致程序十分复杂与不稳定,希望能有更好的解决方案

最后一次编辑于  2018-01-24  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 范
    2018-02-04

    我也有这个问题啊

    2018-02-04
    赞同
    回复
  • 花易折 skr skr ~
    花易折 skr skr ~
    2018-02-05

    在 onload中用this.继续写就可以了

    2018-02-05
    赞同
    回复
  • 范
    2018-02-05

    谢谢指导。我现在这么写的 您看下,好像启动就报错了

    //index.js
    //获取应用实例
    const app = getApp()
    const recorderManager = wx.getRecorderManager();
    const innerAudioContext = wx.createInnerAudioContext();
    var util = require('../../utils/util.js');
    page({
    ......
      onLoad: function (options) {
        var that = this;
        that.innerAudioContext.onPlay(() => {
     
        })
        that.recorderManager.onStart(() => {
     
        });
        that.recorderManager.onStop((res) => {
          console.log("首页输出")
    })
    })

    启动报错了 写法是不是不对

    2018-02-05
    赞同
    回复
  • 花易折 skr skr ~
    花易折 skr skr ~
    2018-02-05


    这是我同事写的,帖子也是帮他发的 创建录音管理器也放到onLoad中再试试

    2018-02-05
    赞同
    回复