Я пытаюсь воспроизвести звук из ByteArray, захваченный с микрофона, и я ожидаю услышать звук с микрофона, но я получаю только случайный искаженный звук. Это код, который я использую сейчас:
var playBa:ByteArray;
var player:Sound = new Sound();
sound.addEventListener(SampleDataEvent.SAMPLE_DATA, playMic);
sound.play();
var mic:Microphone = Microphone.getMicrophone();
mic.gain = 100;
mic.rate = 44;
mic.setSilenceLevel(0, 4000);
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onMicSample);
function playMic(e:SampleDataEvent):void
{
if (playBa != null) e.data.writeBytes(playBa, 0, playBa.length);
}
function onMicSample(e:SampleDataEvent):void
{
playBa = e.data;
playBa.position = 0;
player.play();
}
И после нескольких секунд искаженных звуков вот что я получил в окне вывода:
RangeError: Error #2004: One of the parameters is invalid.
at flash.media::Sound/play()
at vclass_fla::MainTimeline/onMicSample()
Пожалуйста помогите. Я совершенно новичок в AS3 и здесь. Любая помощь высоко ценится. Спасибо.