wx.createInnerAudioContext使用stop无法停止当前语音

发布于 8 年前作者 na0616630 次浏览最后编辑 8 年前来自 ask

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

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

innerAudioContext.onEnded(() => {

    console.log(‘123’)

})

无法打印123

10 回复
zhengjing
zhengjing1 楼6 年前
同一个  const innerAudioContext = wx.createInnerAudioContext()
ming71
ming712 楼6 年前

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

tiantao
tiantao3 楼6 年前

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

zfang
zfang4 楼6 年前

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

cmo
cmo5 楼6 年前

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

yang50
yang506 楼6 年前

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

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

xiulandai
xiulandai7 楼6 年前

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

bzhang
bzhang8 楼6 年前

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

  recorderManager.stop();

        recorderManager.onStop((res) => {

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

 

        });

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

xia01
xia019 楼6 年前

goB:function(){

 recorderManager.stop();

        recorderManager.onStop((res) => {

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

           wx.navigateTo({

                 url: '../b/b'

            })

        });

}

这样试试

jinming
jinming10 楼6 年前

我是这个逻辑  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)

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