MediaStream: getAudioTracks() 方法

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

MediaStream 接口的 getAudioTracks() 方法返回一个序列,该序列代表此流的 track set 中的所有 MediaStreamTrack 对象,其中 MediaStreamTrack.kindaudio

语法

js
getAudioTracks()

参数

无。

返回值

一个包含 MediaStreamTrack 对象的数组,每个对象对应流中包含的一个音频轨道。音频轨道是那些 kind 属性为 audio 的轨道。如果流不包含任何音频轨道,则数组为空。

注意: 返回的轨道顺序并未在规范中定义,实际上,它可能在每次调用 getAudioTracks() 时发生变化。

此 API 的早期版本包含一个特殊的 AudioStreamTrack 接口,该接口曾用作音频流列表中每个条目的类型;然而,该接口后来已合并到主 MediaStreamTrack 接口中。

示例

此示例使用 getUserMedia() 获取摄像头流中的音频和视频,将该流附加到一个 <video> 元素,然后设置一个计时器,该计时器到期后将停止在流中找到的第一个音频轨道。

js
navigator.mediaDevices
  .getUserMedia({ audio: true, video: true })
  .then((mediaStream) => {
    document.querySelector("video").srcObject = mediaStream;
    // Stop the audio stream after 5 seconds
    setTimeout(() => {
      const tracks = mediaStream.getAudioTracks();
      tracks[0].stop();
    }, 5000);
  });

规范

规范
媒体捕获和流
# dom-mediastream-getaudiotracks

浏览器兼容性