收藏
回答

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

问题模块 API/组件名称 终端类型 微信版本 基础库版本
API和组件 wx.createInnerAudioContext 客户端 6.6.1 1.6.4

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

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

innerAudioContext.onEnded(() => {

    console.log('123')

})

无法打印123

最后一次编辑于  2018-01-11
回答关注问题邀请回答
收藏

11 个回答

  • The-fighter-
    The-fighter-
    2018-01-26

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

    2018-01-26
    赞同
    回复
  • 克莱
    克莱
    2018-01-26

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

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

    2018-01-26
    赞同
    回复
  • The-fighter-
    The-fighter-
    2018-01-26

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


    2018-01-26
    赞同
    回复
  • The-fighter-
    The-fighter-
    2018-01-26

    goB:function(){

     recorderManager.stop();

            recorderManager.onStop((res) => {

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

               wx.navigateTo({

                     url: '../b/b'

                })

            });

    }

    这样试试


    2018-01-26
    赞同
    回复
  • 克莱
    克莱
    2018-01-26

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

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



    2018-01-26
    赞同
    回复
  • The-fighter-
    The-fighter-
    2018-01-26

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

    2018-01-26
    赞同
    回复
  • 克莱
    克莱
    2018-01-26

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

      recorderManager.stop();

            recorderManager.onStop((res) => {

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

               

            });

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


    2018-01-26
    赞同
    回复
  • The-fighter-
    The-fighter-
    2018-01-26
    同一个  const innerAudioContext = wx.createInnerAudioContext()


    2018-01-26
    赞同
    回复
  • The-fighter-
    The-fighter-
    2018-01-26

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


    2018-01-26
    赞同
    回复
  • 克莱
    克莱
    2018-01-26

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

    2018-01-26
    赞同
    回复

正在加载...