あまりにも高速再生の方法:録音音声作品、私は次の関数を使用してマイクからの音声入力を記録しています
private function handleSampleData(p_sampleEvent:SampleDataEvent) :void
{
var data :Number;
while (p_sampleEvent.data.bytesAvailable)
{
data = p_sampleEvent.data.readFloat();
_buffer.writeFloat(data);
_buffer.writeFloat(data);
}
}
これは動作するようです。
_buffer.position = 0;
_lastRecord = new ByteArray();
while (_buffer.bytesAvailable)
{
_lastRecord.writeFloat(_buffer.readFloat());
}
_lastRecord.position = 0;
その後、私は新たに作成された音に遊びを()を使用すると、この機能を使用して、それに_lastRecordバッファを養う:
私はレコーディングを終えた後、私はこのような別のバッファに記録されたデータをコピーしますpublic function handlePlaybackSampleData(p_sampleEvent:SampleDataEvent) :void
{
// Read data until either MAX_SAMPLES or all available samples are reached.
var i:int = 0;
var data :Number = 0;
while(i < 8192)
{
if(_lastRecord.bytesAvailable)
{
data = _lastRecord.readFloat();
p_sampleEvent.data.writeFloat(data);
i++;
continue;
}
else
{
break;
}
}
}
基本的には機能しますが、再生されるサウンドはあまりにも速いです。 私はこのコードの大部分を、完全にうまく動作する例から取り出しました。私のコードとこれとの重要な違いはもう分かりません:http://labs.makemachine.net/2011/04/record-visualize-save-microphone-input/
まだ、音声が途切れすぎています。 "_buffer.writeFloat(data);"をさらに追加することで、_bufferにさらに多くのデータを入れると、それはより良くなり、その12行があるときは、それが望ましい速度になります。しかし、それだけでも私のマイクにぶつかるときに役立ちます。私が実際に話すなら、それは十分ではないようにも思われます。
これはどうですか?そして、どのように私はそのコードを取った例では、その2行だけで十分ですか?録音中にバッファに書き込む必要のあるデータ量を判断する方法はありますか?
そうだった。マイクのレート設定が合っていませんでした。ありがとう、残りのためにも! – TheSHEEEP