开发
API

RecorderManager.onFrameRecorded

基础库 1.0.0 开始支持本方法,这是一个同步方法。

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

语法

RecorderManager.onFrameRecorded(callback)

参数说明

callback

类型默认值必填说明最低支持版本
function回调函数1.0.0

回调函数参数说明

object 类型,属性如下:

属性名类型说明最低支持版本
isLastFramestring是否是最后一帧1.0.0
frameBufferbuffer帧的数据1.0.0

返回值

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

<button type="primary" bindtap="startRecord">开始录音</button>
<view tt:if="{{frameNum > 0}}">接收到的帧数:{{frameNum}}</view>
// index.js
Page({
  data: {
    frameNum: 0,
  },
  startRecord() {
    const recorderManager = tt.getRecorderManager();
    const options = {
      duration: 60000,
      sampleRate: 12000,
      numberOfChannels: 1,
      encodeBitRate: 25000,
      frameSize: 100,
    };
    recorderManager.start(options);
    tt.showToast({ title: "开始录音" });
    recorderManager.onFrameRecorded((frame) => {
      let { isLastFrame } = frame;
      this.setData({
        frameNum: this.data.frameNum + 1,
      });
      isLastFrame && tt.showToast({ title: "录音结束" });
    });
  },
});

Bug & Tip

  • Tip: 若设置的 frameSize 大于整个音频的大小,则在音频结束时一次性输出;
  • Tip: Android 仅支持 pcm 格式。
点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助