В настоящее время я записываю звук и сохраняю массив байтов для воспроизведения и последующего кодирования в mp3.
К сожалению, хотя я получаю звук щелчка в самом начале записи.
Я попытался устранить это несколькими способами, такими как:
запись первых 0,3 секунд с mic.gain = 0;затем устанавливая mic.gain = 50;
, очищая byteArray через первые 0,3 секунды, затем продолжая записывать байтовый массив (фактически удаляя первые 0,3 секунды записи.)
Ни один из этих методов не остановил добавление клика.
Кто-нибудь может представить, как я могу предотвратить добавление клика?
Здесьмой код записи / хранения:
public var mic:Microphone = Microphone.getMicrophone();
public var micSilence:uint;
private var soundBytes:ByteArray = new ByteArray();
private var soundBA:ByteArray = new ByteArray();
mic.gain = 50;
mic.setSilenceLevel(1, 2000);
mic.rate = 44;
Security.showSettings("2");
mic.setLoopBack(false);
mic.setUseEchoSuppression(false);
private function startRecordingAfterCountdown():void {
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
}
private function micSampleDataHandler(event:SampleDataEvent):void {
while (event.data.bytesAvailable){
var sample:Number = event.data.readFloat();
soundBytes.writeFloat(sample);
}
}
private function stopRecord():void {
mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
soundBytes.position = 0;
soundBA.clear();
soundBA.writeBytes(soundBytes);
soundBA.position = 0;
soundBytes.clear();
var newBA:ByteArray = new ByteArray();
newBA.writeBytes(soundBA);
recordingsArray[0] = newBA;
}