抖音开放平台Logo
控制台

AudioContext.createMediaStreamSource
收藏
我的收藏

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

创建并返回一个新的 MediaStreamAudioSourceNode 对象节点,是作为音频源运行,该节点的输入源目前只能是来自于麦克风。

前提条件
业务背景
使用限制
注意事项
相关教程

语法

AudioContext.createMediaStreamSource(steamId)

参数说明

steamId

类型默认值必填说明最低支持版本
number

创建麦克风获取到的流 id

1.34.0

返回值

类型说明最低支持版本
object1.34.0

代码示例

async function main() {
  const streamID = await tt.requestMicrophone();
  const context = tt.getAudioContext();
  const sourceNode = context.createMediaStreamSource(streamID);
  sourceNode.isSampleSource = true; //设置该参数,可以在录屏时带上麦克风声音源

  /**
   * 检测音量以确认麦克风确实起效了
   */
  const volumeDetectionNode = context.createVolumeDetection();
  sourceNode.connect(volumeDetectionNode);
  volumeDetectionNode.connect(context.destination);

  setInterval(() => {
    const { size, data } = volumeDetectionNode.getVolumeDetectionData();
    const averageVolume =
      data.reduce((prev, volume) => prev + volume, 0) / size;
    console.log(`[API: microphone] average volumn: ${averageVolume}`);
  }, 2000);
}
main();

/* 
  输出:
  [API: microphone] average volumn: 0.000010016467299465149
  [API: microphone] average volumn: 0.000004972311089659343
  ...
*/