我试图从麦克风捕获的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