Frage : Kann ich mic-Daten gefangennehmen?

Ich las help.adobe.com über sampleDataEvent und es sagt dieses über das Gefangennehmen microphone.

Capturing des Mikrofon-Audiogebrauches das sampleData Ereignis, Audiodaten von einem Mikrofon gefangenzunehmen. Wann fügen Sie einen Ereigniszuhörer für das sampleData Ereignis, die Mikrofonabfertigungen das Ereignis hinzu, während Audioproben available.

Does dieses Mittel werden, das ich Audio von einem mic gefangennehmen und es abspielen kann?
1:
2:
3:
4:
5:
6:
var soundBytes: ByteArray = neues ByteArray ();
 während (event.data.bytesAvailable)
 {
      var-Probe: Zahl = event.data.readFloat ();
      soundBytes.writeFloat (Probe);
 }

Antwort : Kann ich mic-Daten gefangennehmen?

Ich schätze, dass es tut.  Ist hier der Code.  
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
const DELAY_LENGTH: int = 4000;

var mic: Mikrofon = Microphone.getMicrophone ();
mic.setSilenceLevel (0, DELAY_LENGTH);
mic.gain = 100;
mic.rate = 44;
mic.addEventListener (SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);

var-Timer: Timer = neuer Timer (DELAY_LENGTH);
timer.addEventListener (TimerEvent.TIMER, timerHandler);
timer.start ();

var soundBytes: ByteArray = neues ByteArray ();

Funktion micSampleDataHandler (Ereignis: SampleDataEvent): Lücke
{
    während (event.data.bytesAvailable)
    {
        var-Probe: Zahl = event.data.readFloat ();
        soundBytes.writeFloat (Probe);
    }
}

Funktion timerHandler (Ereignis: TimerEvent): Lücke
{        
    mic.removeEventListener (SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
    timer.stop ();
    soundBytes.position = 0;
    var-Ton: Ton = neuer Ton ();
    sound.addEventListener (SampleDataEvent.SAMPLE_DATA, playbackSampleHandler);
    sound.play ();
}

Funktion playbackSampleHandler (Ereignis: SampleDataEvent): Lücke
{
    für (var I: int = 0; I < 8192=""> 0; i++) 
    {
        var-Probe: Zahl = soundBytes.readFloat ();
        event.data.writeFloat (Probe);
        event.data.writeFloat (Probe);
    }
}
Weitere Lösungen  
 
programming4us programming4us