나는 사용자가 자신의 목소리를 녹음하고 서버에 제출해야하는 프로젝트를 진행하고 있습니다. 그러나 제출하기 전에 사용자는 녹음 된 사운드를 재생해야 할 수도 있습니다.플렉스 SPEEX 코덱을 사용한 마이크 재생
응용 프로그램의 녹음 재생 기능은 SPEEX 코덱입니다. 하지만 내가 뭘 발견 이상하고 어려운 내가 사용자가 녹음 된 오디오를 재생할 때, 재생 속도가 빠르거나 이해할 수없는 정상보다 느립니다. 마치 그것의 빠른 전달.
private var mic:Microphone;
private var rec:ByteArray;
private var snd:Sound;
private var channel:SoundChannel;
protected function recBtn_clickHandler(event:MouseEvent):void
{
rec = new ByteArray();
mic = Microphone.getMicrophone();
mic.setLoopBack(false);
mic.setUseEchoSuppression(true);
mic.gain = 50;
mic.setSilenceLevel(5, 1000);
mic.codec = SoundCodec.SPEEX;
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, getMicAudio);
}
protected function plyBtn_clickHandler(event:MouseEvent):void
{
snd.addEventListener(SampleDataEvent.SAMPLE_DATA, playRecorded);
channel = snd.play();
}
private function getMicAudio(e:SampleDataEvent): void
{
rec.writeBytes(e.data);
}
private function playRecorded(e:SampleDataEvent): void
{
if (!rec.bytesAvailable > 0) return;
for (var i:int = 0; i < 2048; i++){
var sample:Number = 0;
if (rec.bytesAvailable > 0) sample = rec.readFloat();
for (var j:uint = 0; j < 6; j++) {
e.data.writeFloat(sample);
}
}
}
이
이 시나리오는 발생할 때 : : 여기
샘플 코드입니다- mic.codec = SoundCodec.SPEEX;
- mic.rate = 16
내가 포럼을 많이 겪었지만, SPEEX 코덱 또는 microphone.rate = 16 마이크 재생을위한 모든 솔루션을 찾을 수 없습니다;