AudioContext: createMediaStreamTrackSource()-Methode
Die createMediaStreamTrackSource()
-Methode der AudioContext
-Schnittstelle erzeugt und gibt ein MediaStreamTrackAudioSourceNode
zurück, das eine Audioquelle darstellt, deren Daten vom angegebenen MediaStreamTrack
stammen.
Dies unterscheidet sich von der Methode createMediaStreamSource()
, die ein MediaStreamAudioSourceNode
erstellt, dessen Audio von der Audiospur in einem angegebenen MediaStream
kommt, dessen id
lexikografisch (alphabetisch) zuerst ist.
Syntax
createMediaStreamTrackSource(track)
Parameter
track
-
Der
MediaStreamTrack
, der als Quelle aller Audiodaten für den neuen Knoten verwendet wird.
Rückgabewert
Ein MediaStreamTrackAudioSourceNode
-Objekt, das als Quelle für Audiodaten in der angegebenen Audiospur dient.
Beispiele
In diesem Beispiel wird getUserMedia()
verwendet, um den Zugriff auf das Mikrofon des Benutzers anzufordern. Sobald dieser Zugriff gewährt wurde, wird ein Audiokontext erstellt und ein MediaStreamTrackAudioSourceNode
mithilfe von createMediaStreamTrackSource()
erstellt, dessen Audio von der ersten Audiospur im Stream stammt, der von getUserMedia()
zurückgegeben wird.
Dann wird ein BiquadFilterNode
erzeugt, indem createBiquadFilter()
verwendet wird, und es wird so konfiguriert, dass ein Tiefenfilter auf das vom Quellknoten kommende Audio angewendet wird. Der Ausgang des Mikrofons wird dann in den neuen Biquad-Filter geleitet, und der Ausgang des Filters wiederum zum destination
des Audiokontextes.
navigator.mediaDevices
.getUserMedia({ audio: true, video: false })
.then((stream) => {
audio.srcObject = stream;
audio.onloadedmetadata = (e) => {
audio.play();
audio.muted = true;
};
const audioCtx = new AudioContext();
const audioTracks = stream.getAudioTracks();
const source = audioCtx.createMediaStreamTrackSource(audioTracks[0]);
const biquadFilter = audioCtx.createBiquadFilter();
biquadFilter.type = "lowshelf";
biquadFilter.frequency.value = 3000;
biquadFilter.gain.value = 20;
source.connect(biquadFilter);
biquadFilter.connect(audioCtx.destination);
})
.catch((err) => {
// Handle getUserMedia() error
});
Spezifikationen
Specification |
---|
Web Audio API # dom-audiocontext-createmediastreamtracksource |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Web Audio API
- Verwendung der Web Audio API
MediaStreamTrackAudioSourceNode