收藏
回答

两个页面wx.getRecorderManager冲突

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 wx.getRecorderManager 客户端 iOS 6.6.2 1.9.1

您好,我现在遇到了一个问题。

我在两个页面index和detail页面的page上边声明了两个

const recorderManager = wx.getRecorderManager();

然后在各自的onload中声明了onstop事件,现在出现了一个问题

程序启动进入首页(index页)以后,在进入detail页面,再回到首页,进行录音

此时录音结束以后的onstop执行的却是detail页面的事件,不知道该如何处理,麻烦指导下

谢谢

//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;
    innerAudioContext.onPlay(() => {
 
    })
    recorderManager.onStart(() => {
 
    });
    recorderManager.onStop((res) => {
      console.log("首页输出")
})
})

上边是index的

const app = getApp();
const recorderManager = wx.getRecorderManager();
const innerAudioContext = wx.createInnerAudioContext();
var util = require('../../utils/util.js');
Page({
。。。。。
  onLoad: function (options) {
  recorderManager.onStop((res) => {
      console.log("detail输出")
})
}
})



最后一次编辑于  2018-02-07  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 德芙
    德芙
    2018-06-21

    我也是一样,并且我第一个页面是

    const recorderManager1 = wx.getRecorderManager

    第二个页面是

    const recorderManager2 = wx.getRecorderManager

    返回第一个页面后执行record仍然会起冲突执行第二个recorderManager2.onStart()


    2018-06-21
    赞同
    回复
  • 范
    2018-02-07

    谢谢您的回复,但是这样做不行,这样 话 相当于事件注册了多次,到时候监听事件会执行多次

    2018-02-07
    赞同
    回复
  • Mr. ♥
    Mr. ♥
    2018-02-07

    RecorderManager 和 BackgroundAudioManager 一样都是全局的,你这两个页面其实都是同一个对象。建议页面 onShow 时重新绑定各个事件,即使没用到的事件也绑一个空函数,覆盖掉之前页面绑定的其他事件。

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

    又要沉了?

    2018-02-07
    赞同
    回复