wx.createInnerAudioContext使用stop无法停止当前语音
发布于 7 年前 作者 na06 16505 次浏览 来自 问答

我在使用wx.createInnerAudioContext  api时,播放没问题,但是在播放的时候想使用

innerAudioContext.stop(),工具上和真机测试都没有反应,而且

innerAudioContext.onEnded(() => {

    console.log(‘123’)

})

无法打印123

10 回复
同一个  const innerAudioContext = wx.createInnerAudioContext()

你的页面是个什么逻辑,录制和点击跳转是一个按钮吗,如果不是,就写两个点击事件呗,如果是,就加个判断就行了

我也遇到了 楼主有解决掉吗?

你那种应该是异步了,先试试

你是在onStop里边做了跳转是吧?一般情况下都是手动停止录音,比如按住录音,手指抬起停止…和微信类似.但是您这种自动停止,是怎么回事

楼主说的很对 确实异步了 你这样是可以的 谢谢楼主

但是 现在 有个新的问题出来了 如果我不点击录制  直接点击跳转页面 这时候 因为没有触发 录制的事件 导致这个stop不能执行 所以也就不能跳转了

你是有用到循环吗,总之一句话,一定要是用同一个wx.createInnerAudioContext 

楼主 你用的是播放api停止 而我用的是 录音停止  点击跳转页面 这时候我调用录音

  recorderManager.stop();

        recorderManager.onStop((res) => {

            console.log(‘这里调用停止’)

 

        });

是不行的 ,但是如果我加延迟跳转 那么录音是可以停止的,很奇怪

goB:function(){

 recorderManager.stop();

        recorderManager.onStop((res) => {

            console.log('这里调用停止')

           wx.navigateTo({

                 url: '../b/b'

            })

        });

}

这样试试

我是这个逻辑  a页面 有个 录制按钮 我点击录制 这时候调用录制的api 没有问题   那么这时候 我再去点击跳转到页面

goB:function(){

 recorderManager.stop();

        recorderManager.onStop((res) => {

            console.log(‘这里调用停止’)

        });

 wx.navigateTo({

            url: ‘…/b/b’

        })

}

这时候是无法停止这个录制的 很奇怪  如果我不作做跳转 当前页面我加个停止按钮 是可以停止录制的 只要跳转页 就不能停止  如果这样做

goB:function(){

 recorderManager.stop();

        recorderManager.onStop((res) => {

            console.log(‘这里调用停止’)

        });

setTimeout(function(){

 wx.navigateTo({

            url: ‘…/b/b’

        })

}

},500)

就可以停止 很奇怪  非得做下延迟 才可以

回到顶部