MediaStreamTrackAudioSourceNode: MediaStreamTrackAudioSourceNode() constructor

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

The Web Audio API's MediaStreamTrackAudioSourceNode() constructor creates and returns a new MediaStreamTrackAudioSourceNode object whose audio is taken from the MediaStreamTrack specified in the given options object.

Another way to create a MediaStreamTrackAudioSourceNode is to call the AudioContext.createMediaStreamTrackSource() method, specifying the MediaStreamTrack from which you want to obtain audio.

Syntax

js
new MediaStreamTrackAudioSourceNode(context, options)

Parameters

context

An AudioContext representing the audio context you want the node to be associated with.

options

An object defining the properties you want the MediaStreamTrackAudioSourceNode to have:

mediaStreamTrack

The MediaStreamTrack from which to take audio data for this node's output.

Return value

A new MediaStreamTrackAudioSourceNode object representing the audio node whose media is obtained from the specified media track.

Exceptions

NotSupportedError DOMException

Thrown if the specified context is not an AudioContext.

InvalidStateError DOMException

Thrown if the specified MediaStreamTrack isn't an audio track (that is, its kind property isn't audio.

Example

This example uses getUserMedia() to obtain access to the user's camera, then creates a new MediaStreamAudioSourceNode from the first audio track provided by the device.

js
const audioCtx = new AudioContext();

if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices
    .getUserMedia({
      audio: true,
      video: false,
    })
    .then((stream) => {
      const options = {
        mediaStreamTrack: stream.getAudioTracks()[0],
      };

      const source = new MediaStreamTrackAudioSourceNode(audioCtx, options);
      source.connect(audioCtx.destination);
    })
    .catch((err) => {
      console.error(`The following gUM error occurred: ${err}`);
    });
} else {
  console.log("new getUserMedia not supported on your browser!");
}

Specifications

Specification
Web Audio API
# dom-mediastreamtrackaudiosourcenode-mediastreamtrackaudiosourcenode

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
MediaStreamTrackAudioSourceNode() constructor
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 68 (Release date: 2019-07-09)
footnote
footnote Firefox 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Chrome Android – No support
Chrome Android
footnote No support
Firefox for Android – Full support
Firefox for Android 68 (Release date: 2019-07-09)
footnote
footnote Firefox for Android 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.
Opera Android – No support
Opera Android
footnote No support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – No support
Samsung Internet
footnote No support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.