录音管理器 recorderManager.onStop监听事件问题
发布于 5 年前 作者 dguo 5537 次浏览 来自 问答

问题说明:

    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中,这样会导致程序十分复杂与不稳定,希望能有更好的解决方案

4 回复

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

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

//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("首页输出")
})
})

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

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

我也有这个问题啊

回到顶部