MediaStreamAudioDestinationNode

MediaStreamAudioDestinationNode - об'єкт для перетворення вхідного аудіо сигналу в медіа потік.

Синтаксис:

var destination = AudioContext.createMediaStreamAudioDestination();

Параметри:

destination - змінна якій присвоюється об'єкт MediaStreamAudioDestinationNode.

AudioContext - AudioContext.

Опис:

MediaStreamAudioDestinationNode об'єкт який представляє собою аудіо вузол для перетворення вхідного аудіо звуку в медіа потік MediaStream.

Приклад:

var audio = new AudioContext(); var destination = audio.createMediaStreamDestination(); alert(destination);

Даний приклад наглядно показує перетворення аудіо звуку в медіа потік (MediaStream) і зворотньо потік в аудіо звук:

var audio=new AudioContext(); var oscilator=audio.createOscillator(); var dest=audio.createMediaStreamDestination(); //об'єкт для перетворення аудіо звуку в медіо потік var source=audio.createMediaStreamSource(dest.stream); //об'єкт для перетворення медіа потоку в аудіо звук з вказаним потоком від MediaStreamDestinationNode oscilator.connect(dest); source.connect(audio.destination); oscilator.start(); //відтворюємо осцилятор oscilator.stop(3);//зупиняємо осцилятор через 3 секунди

Приклад запису звуку з осцилятор передачі його елементу audio:

var sound=[]; //масив куди будемо записувати сам звук var audio = new AudioContext(); var osc = audio.createOscillator(); var dest = audio.createMediaStreamDestination(); //створюєсо о'бєкт MediaStreamAudioDestinationNode var mediaRecorder = new MediaRecorder(dest.stream); //об'єкт для запису звуку з вказаним потоком з MediaStreamAudioDestinationNode mediaRecorder.ondataavailable=function(evt){sound.push(evt.data); /*додаємо звку у масив*/ } mediaRecorder.onstop = function(evt){ var blob = new Blob(sound,{'type':'audio/ogg; codecs=opus'}); //створюємо дані типу audio/ogg з масиву sound var audioElement=document.getElementById("audio_element"); audioElement.src=URL.createObjectURL(blob); //присвоюємо записані дані звуку елементу audio audioElement.setAttribute('controls','true'); //відображаємо панель керування }; osc.connect(dest); osc.start(); //відтворюємо звуку з осцилятора mediaRecorder.start(); //починаємо запис звуку function playOscilator(index){ //функція яка змінює частоти в осциляторі var hz=[1000,9650,3200,4600,1600,4300]; //масив з частотами Гц if(index==undefined)index=0; if(index>hz.length-1){ mediaRecorder.stop(); //зупиняємо запис звуку osc.stop(); //зупиняємо осцилятор }else{ osc.frequency.value=hz[index]; //змінюємо частоту звуку осцилятора setTimeout(playOscilator,400,index+1); } } playOscilator();