美文网首页
《微信小程序开发从入门到实战》学习七十九

《微信小程序开发从入门到实战》学习七十九

作者: 阿宅白石 | 来源:发表于2024-01-10 23:57 被阅读0次

    6.10 录音API

    6.10.1 录音API的补充

    采样率sampleRate有对应的编码码率,设置不合法的采样率或编码率会导致录音失败,具体对应关系如下示:

    采样率        编码码率

    8000        16000~48000

    11025       16000~48000

    12000       24000~64000

    16000       24000~96000

    22050       32000~128000

    24000       32000~128000

    32000       48000~192000

    44100       64000~320000

    48000       64000~320000

    6.10.3 录音事件监听API

    在录音管理器上可设置一些录音事件监听函数。在录音过程的特定事件发生时可执行一些操作。示例代码如下:

        // 监听录音开始事件

        const recorderManager = wx.getRecorderManager()

        // 监听录音开始事件

        recorderManager.onStart(function() {

          console.log('Record start')

        }) 

        // 监听录音暂停事件

        recorderManager.onPause(function() {

          console.log('Record pause')

        })

        // 监听录音继续事件

        recorderManager.onResume(function() {

          console.log('Record resume')

        })

        // 监听录音结束事件

        recorderManager.onStop(function() {

          console.log('Record stop')

        })

        // 监听录音错误事件

        recorderManager.onError(function(res) {

          console.log(res.errMsg)

        })

        // 监听已录制完指定帧大小的文件事件,如果设置了frameSize,则会回调此事件

        recorderManager.onFrameRecorded(function(res) {

          console.log(res.frameBuffer) // 录音分片数据

          console.log(res.isLastFrame) // 当前帧是否是正常录音结束前的最后一帧 

        })

        // 基础库2.3.0开始支持

        // 监听录音因为系统占用而被中断开始事件

        // 微信语音聊天和微信视频聊天会触发此事件

        // 此事件触发后,录音会被暂停,因此pause事件会在此事件后触发

        recorderManager.onInterruptionBegin(function() {

          console.log('Record interruption begin') 

        })

        // 基础库2.3.0开始支持

        // 监听录音因为系统占用而被中断结束事件

        // 在收到interruptionBegin事件之后,小程序内所有录音会暂停,收到此事件后才可再次录音成功

        recorderManager.onInterruptionEnd(function() {

          console.log('Record interruption end') 

        })

    相关文章

      网友评论

          本文标题:《微信小程序开发从入门到实战》学习七十九

          本文链接:https://www.haomeiwen.com/subject/rbxtodtx.html