iPhone 6

iOS 11.1.2


问题是这样的。由于产品整个只允许一个音频播放,跳转至其他页面时,也可以判断播放状态。

所以我在app.js中定义了一个全局对象。

const innerAudioContext = wx.createInnerAudioContext()//音频播放;


在A页面onLoad中 注册了一遍 预防更换音频src多次触发回调。 这是正常的。

//播放回调

innerAudioContext.onPlay(() => {

console.log('开始播放')

})

但是我跳转入B页面中,由于要识别回调状态来改变Page数据。所以在B页面onLoad中也写入了

innerAudioContext.onPlay(() => {

console.log('开始播放')

})

结果在我返回A页面播放音乐时,

B页面明明是卸载的。但是却也触发了回调。


如何让B页面回调事件卸载后不执行?不能销毁实例,因为是全局对象。。

展开全部
收起
10回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Miroslavkk

    20人对此回答表示赞同

    Daniel.自己顶顶。。坐等官方大哥回答

    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 邱世承

    20人对此回答表示赞同

    可以先看看小游戏的文档https://mp.weixin.qq.com/debug/wxagame/dev/document/media/audio/InnerAudioContext.html?t=201832,内容一样的。小程序的开发文档我们补一下。

    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Kevin01

    14人对此回答表示赞同

    @Link那请问下。offPlay可以取消监听播放回调。那

    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Isabel

    14人对此回答表示赞同

    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 安守本分

    12人对此回答表示赞同

    自己顶顶。。坐等官方大哥回答

    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Shyanne

    12人对此回答表示赞同

    可以在B页面的onUnload事件中调用InnerAudioContext.offPlay取消监听,但需要注意版本兼容。1.8.0以上版本可用。

    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 苏瑞芬

    12人对此回答表示赞同

    大哥录音的也会有这个问题。有录音的销毁监听事件嘛

    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Jonathan

    11人对此回答表示赞同

    此刻我真的想配上一首歌。终于等到你,还好我没放弃

    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Matthew

    3人对此回答表示赞同

    呀。解决了我的燃眉之急。

    展开
    3
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Miroslavkk

    1人对此回答表示赞同

    为何官方文档没写。。

    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部