Spec-Zone.ru › Web APIs

AudioContext: метод createMediaStreamSource()

Базовый уровень Широко распространён

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод createMediaStreamSource() интерфейса AudioContext используется для создания нового объекта MediaStreamAudioSourceNode, используя медиапоток (например, из экземпляра MediaDevices.getUserMedia), звук из которого можно воспроизводить и обрабатывать.

Для получения более подробной информации о узлах аудиоисточника медиапотока, см. страницу справки MediaStreamAudioSourceNode.

Синтаксис

createMediaStreamSource(stream)

Параметры

stream

MediaStream для использования в качестве источника звука, который будет подан на график обработки звука для использования и манипулирования.

Возвращаемое значение

Новый объект MediaStreamAudioSourceNode, представляющий узел звука, чья медиа получена из указанного источника потока.

Примеры

В этом примере мы получаем поток медиа (аудио + видео) из navigator.getUserMedia, подаём медиа в элемент <video> для воспроизведения, затем выключаем звук, но также подаём аудио в MediaStreamAudioSourceNode. Затем мы подаём этот источник аудио на низкочастотный BiquadFilterNode (который фактически служит усилителем басов) и на AudioDestinationNode.

Ползунок диапазона под элементом <video> управляет коэффициентом усиления низкочастотного фильтра — увеличьте значение ползунка, чтобы сделать звук более басовым!

Примечание: Вы можете посмотреть этот пример в действии или посмотреть исходный код.

const pre = document.querySelector("pre");
const video = document.querySelector("video");
const myScript = document.querySelector("script");
const range = document.querySelector("input");

// getUserMedia block - grab stream
// put it into a MediaStreamAudioSourceNode
// also output the visuals into a video element

if (navigator.mediaDevices) {
  console.log("getUserMedia supported.");
  navigator.mediaDevices
    .getUserMedia({ audio: true, video: true })
    .then((stream) => {
      video.srcObject = stream;
      video.onloadedmetadata = (e) => {
        video.play();
        video.muted = true;
      };

      // Create a MediaStreamAudioSourceNode
      // Feed the HTMLMediaElement into it
      const audioCtx = new AudioContext();
      const source = audioCtx.createMediaStreamSource(stream);

      // Create a biquad filter
      const biquadFilter = audioCtx.createBiquadFilter();
      biquadFilter.type = "lowshelf";
      biquadFilter.frequency.value = 1000;
      biquadFilter.gain.value = range.value;

      // connect the AudioBufferSourceNode to the gainNode
      // and the gainNode to the destination, so we can play the
      // music and adjust the volume using the mouse cursor
      source.connect(biquadFilter);
      biquadFilter.connect(audioCtx.destination);

      // Get new mouse pointer coordinates when mouse is moved
      // then set new gain value

      range.oninput = () => {
        biquadFilter.gain.value = range.value;
      };
    })
    .catch((err) => {
      console.log(`The following gUM error occurred: ${err}`);
    });
} else {
  console.log("getUserMedia not supported on your browser!");
}

// dump script to pre element

pre.textContent = myScript.textContent;

Примечание: Вследствие вызова createMediaStreamSource(), воспроизведение звука из медиапотока будет перенаправлено в график обработки AudioContext. Поэтому воспроизведение/пауза потока всё ещё может выполняться через API элемента медиа и элементы управления воспроизведением.

Спецификации

Спецификация
Web Audio API
# dom-audiocontext-createmediastreamsource

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
createMediaStreamSource 22 12 25 15 11 25 25 14 11 1.5 ≤37

См. также

  • Использование Web Audio API

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaStreamSource

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API