收藏
回答

InnerAudioContext.onTimeUpdate再次调用只触发一次回

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug InnerAudioContext.onTimeUpdate 客户端 7.0.4 2.6.1



安卓端InnerAudioContext.onTimeUpdate再次调用只触发一次回

回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-07-01

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-07-01
    有用
    回复 7
    • 麦叻
      麦叻
      2019-07-03

      安卓端 较短的音频  几秒钟的会发生这种问题

      2019-07-03
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2019-07-03回复麦叻

      要不你单独发个帖吧,后续好跟进些,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2019-07-03
      回复
    • 麦叻
      麦叻
      2019-07-03回复社区技术运营专员-娇华

      你好,https://developers.weixin.qq.com/community/develop/doc/00068a72a2c588d3c6c8edeac56800?fromCreate=1

      2019-07-03
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2019-07-03回复麦叻

      收到,我们看下,有进展在帖子同步

      2019-07-03
      回复
    • GIVE祝GIVE
      GIVE祝GIVE
      2019-07-24回复麦叻

      请求帮助:

      目标:onTimeUpdate能控制slide进度误差在slide的100刻度里面为5,onStop能正确的执行,并将播放按钮和slide初始化到起点位置。


      问题:onTimeUpdate音频实时回调currentTime会出现0、缺个几十ms、或者和音频长度一致、获取和音频时长差距过大计算slider有问题,而且onStop监听不到已经播放结束了。(进度条max=100)


      功能:语音录入转文字,当前语音可播放。

      1. 语音转文字回调结束后将文字放到表单文本控件中【语音转文字操作】,将录音取出音频api初始化设置【获取时长操作】。

      2. 使用音频播放实时回调api onTimeUpdate更新slide进度,真机测试currentTime 的值千奇百怪,有播放结束是0、等于时长、差XXms(这个变化太大,我只好计算出slide值大于95就算结束了,可是真机测试发现有大于90和95的【录音时长2-5秒】)

      3. 音频stop回调没有反应,真机怎么测试都没有调用。

      目前实现:onLoad中代码():

      // 识别结束事件
          pluginRecorderManager.onStop = (res) => {
            console.log("onStop", res)
            const text = res.result;
            // 设置最大字符串长度(为-1时,则不限制)
            let textAreaMaxLen = that.data.textAreaMaxLen;
            innerAudioContext.stop();
            innerAudioContext.src = res.tempFilePath;
            // 文本长度
            let textAreaCurrentLen = text.length;
            that.setData({
              textAreaMaxLen: textAreaMaxLen,
              textAreaCurrentLen: textAreaCurrentLen,
              textAreaText: text,
              tempFilePath: res.tempFilePath,
              recordTransEnd: true
            });
          }
          innerAudioContext.onCanplay(() => {
            innerAudioContext.duration;
            setTimeout(() => {
              that.setData({
                processtext: util.formatTimeFuc(innerAudioContext.duration)
              })
              console.log('初始化时长', util.formatTimeFuc(innerAudioContext.duration))
            }, 1000)
          })
          pluginRecorderManager.onError = (res) => {
            console.log(res)
          }
          innerAudioContext.onStop(() => {
            console.log('播放完毕')
          })
          innerAudioContext.onTimeUpdate(() => {
            const duration = innerAudioContext.duration;
            let currentTime = innerAudioContext.currentTime;
            let slidervalue = 0;
            if (duration == 0 || currentTime == 0) {
              currentTime = 0;
            } else if (currentTime == duration){
              currentTime = 0;
              slidervalue = 0;
            }else {
              slidervalue = Math.round((currentTime / duration) * 100);
              if (slidervalue > 95) {
                currentTime = 0;
                slidervalue = 0;
              }
            }
            that.setData({
              playAudio: {
                currentprocesstext: util.formatTimeFuc(currentTime),
                slidervalue: slidervalue
              }
            })
            console.log('播放中。。。', duration, currentTime, slidervalue)
          })



      2019-07-24
      回复
    查看更多(2)
  • 麦叻
    麦叻
    2019-07-03

    我在andorid  MEIZU E3armeabi上发现同样的问题

    2019-07-03
    有用
    回复
登录 后发表内容