2016-05-17 2 views
0

Я работаю над проектами, которые необходимо подключить к существующему тегу видео, захватить аудио и сделать небольшие манипуляции с аудио.Использование ScriptProcessorNode для воспроизведения звука дает легкий фоновый шум

var MyContext = new (window.AudioContext || window.webkitAudioContext)(); 
 
var source = MyContext.createMediaElementSource(video); 
 
audioScript = MyContext.createScriptProcessor(512,2,2); 
 
source.connect(audioScript); 
 
audioScript.connect(MyContext.destination); 
 

 
audioScript.onaudioprocess = function(audioProcessingEvent) { 
 
\t  var inputBuffer = audioProcessingEvent.inputBuffer; 
 

 
\t \t // The output buffer contains the samples that will be modified and played 
 
\t \t var outputBuffer = audioProcessingEvent.outputBuffer; 
 
\t \t for (var channel = 0; channel < 2; channel++) 
 
\t \t { 
 
\t \t \t var inputData = inputBuffer.getChannelData(channel); 
 
\t \t \t outputBuffer.copyToChannel(inputData, channel); 
 
\t \t } 
 

 
    }

Вопрос заключается в том, что я получаю легкий фоновый шум на звук. Даже если я ничего не делаю, просто скопирую вход на выход, я слышу этот легкий шум.

Любая идея, в чем причина этого?

Спасибо!

ответ

0

Используйте более высокий размер буфера, он может быть слегка отброшен кадрами, когда он фактически отображается. Не все устройства играют одинаково, и я считаю, что Chrome особенно не играет хорошенько с ScriptProcessorNodes ниже 1024 выборок, независимо от того, что они на самом деле делают.

Смежные вопросы