评论

微信小程序实现实时录音音频强度输出

微信小程序实现实时录音音频强度输出。基于微信小程序的原生 Api,可帮助实时输出录音分贝或者录音曲线波形图等。

代码片段


let recorder = wx.getRecorderManager()

const audioCtx = wx.createWebAudioContext()

const analyser = audioCtx.createAnalyser();

recorder.onFrameRecorded(listener => {

    if (listener.isLastFrame) {

        console.log('soundIntensity',0)

    } else {

        audioCtx.decodeAudioData(listener.frameBuffer, buffer => {

            let source = audioCtx.createBufferSource()

            source.buffer = buffer

            source.connect(analyser)

            source.start()

            let n = new Uint8Array(analyser.frequencyBinCount)

            analyser.getByteTimeDomainData(n)

            let i = 0, r = 0, s = 0

            r = Math.max.apply(null, n)

            s = Math.min.apply(null, n)

            i = (r - s) / 128

            i = Math.round(i * 100 / 2)

            i = i > 100 ? 100 : i

            console.log('soundIntensity', listener.isLastFrame ? 0 : i)

        }, err => {

        console.error('decodeAudioData fail', err)

        })

    }

})


recorder.start({

    duration: 1000,

    sampleRate: 16000, //采样率

    numberOfChannels: 1, //录音通道数

    encodeBitRate: 96000, //编码码率

    format: 'mp3', //音频格式,有效值 aac/mp3

    frameSize: 1

})

最后一次编辑于  01-19  
点赞 1
收藏
评论

5 个评论

  • 浅蓝格子白衬衫
    浅蓝格子白衬衫
    11-11

    createWebAudioContext 这个api现在官网给的是不支持小程序

    

    11-11
    赞同
    回复
  • void
    void
    09-11

    pcm格式的怎么弄哇

    09-11
    赞同
    回复
  • Cool
    Cool
    08-14

    IOS 无法通过这个API 实时监听录音数据 这个有办法解决吗

    08-14
    赞同
    回复
  • 夜雨般的十年
    夜雨般的十年
    05-05

    无法解析实时音频数据

    05-05
    赞同
    回复 2
    • 一
      05-10
      我这边也是..
      05-10
      回复
    • Define
      Define
      05-16
      要真机才能运行
      05-16
      回复
  • c
    c
    01-31

    您好 我想问下我在真机上获取到的值一直为0 是什么原因呢

    01-31
    赞同
    回复 4
    • Define
      Define
      02-20
      代码片段跑的是 0 吗
      02-20
      回复
    • 摇卦
      摇卦
      07-09回复Define
      您好,我代码跑真机测的也是0 请问什么原因
      07-09
      回复
    • 丛伟
      丛伟
      07-18回复摇卦
      我也是0 解决了吗
      07-18
      回复
    • Define
      Define
      07-23回复丛伟
      没复现哎 目前线上都是正常的
      07-23
      回复
登录 后发表内容