我試圖從麥克風捕獲的ByteArray播放聲音,我期待聽到來自麥克風的聲音,但我得到的只是隨機的,扭曲的聲音。這是我現在使用的代碼:如何從AS3中的麥克風字節陣列播放聲音?
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和這裏。任何幫助,高度讚賞。謝謝。
感謝您的代碼,但結果仍然是一樣的。我需要的是從麥克風獲取字節數組,然後在使用相同的字節數組的同時將其發送到服務器,將字節數組播放到Sound類。 – 2013-02-18 08:29:06
在你的代碼中,你可以展示如何創建「聲音」對象? – 2013-02-18 09:31:59
我相信我已經展示瞭如何創建「聲音」對象。看看上面的代碼。球員是聲音的對象。 – 2013-02-18 09:50:13