3

ActionScript 3 を使用してデスクトップでサウンドを録音するアプリケーションを作成しました。アプリケーションを Andriod アプリケーションに変換しましたが、SampleDataEvent.SAMPLE_DATA イベントが記録するデータを受信しないという問題があります。コードは次のとおりです。

private var _microphone:Microphone;
private var _buffer:ByteArray = new ByteArray();
private var _difference:uint;

public function record():void
{
    if ( _microphone == null )
        _microphone = Microphone.getMicrophone();

    _difference = getTimer();
    _microphone.setSilenceLevel(_silenceLevel, _timeOut);
    _microphone.gain = _gain;
    _microphone.rate = _rate;
    _buffer.length = 0;
    _microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
    _microphone.addEventListener(StatusEvent.STATUS, onStatus);
} 

private function onSampleData(event:SampleDataEvent):void
{
    _recordingEvent.time = getTimer() - _difference;
    dispatchEvent( _recordingEvent );
    var buteData:Number;
    while(event.data.bytesAvailable > 0)
    {
        buteData = event.data.readFloat();
        _buffer.writeFloat(buteData);
        soundBytes.writeFloat( buteData);
}
}

誰でもここで助けることができます ありがとう

4

1 に答える 1

3

たぶん、AIR for Android の設定について調べていないのではないでしょうか。RECORD_AUDIO にチェックインしていない場合。あなたはそれをチェックする必要があります。

下の画像を参照してください。

ここに画像の説明を入力

于 2013-07-17T13:10:33.083 に答える