私がサウンドスクリプトをactionscript 3でByteArrayとして保存している場合、これを再生可能なSoundオブジェクトに変換するにはどうすればよいですか?生成された波形をFlashでサウンドとして再生するにはどうすればよいですか?
アレイはサウンドサンプルでいっぱいです - 波形が完全に生成されていることに注意してください。 mp3などの圧縮データを含む配列ではありません。
私がサウンドスクリプトをactionscript 3でByteArrayとして保存している場合、これを再生可能なSoundオブジェクトに変換するにはどうすればよいですか?生成された波形をFlashでサウンドとして再生するにはどうすればよいですか?
アレイはサウンドサンプルでいっぱいです - 波形が完全に生成されていることに注意してください。 mp3などの圧縮データを含む配列ではありません。
Flashでのサウンド合成に関するチュートリアルはかなり書かれています。その中にはウェーブテーブル合成に関するものがあります。
一般的な考え方は、オーディオバッファ(Soundオブジェクト)に一定の間隔でオーディオデータを入力する必要があるということです。 Soundオブジェクトは、オーディオデータが必要なときにイベントを送出します。データのブロックは、2048と8192のサンプルの間であればどこでもかまいません。以下はあなたを助けるかもしれない擬似コードです。配列内のデータからオーディオループを作成します。
var readIndex:int = 0;
var data:Array = yourData;
var sound:Sound = new Sound()
sound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
sound.play();
function onSampleData(event:SampleDataEvent):void
{
for(var i:int = 0; i < 2048; i++)
{
if(readIndex + 1 > data.length)
{
readIndex = 0;
} else {
readIndex++;
}
event.data.writeFloat(data[i]);
event.data.writeFloat(data[i]);
}
}
私が触れたように、私はFlashでサウンドを扱う多くの記事を書いています。このような記事の1つがあります:http://labs.makemachine.net/2010/07/slice-tool-looper/
まあ私は本当に答えはありませんが、私はあなたにスレッドを読んでいると、この問題に非常に興味がありました。hereは私が見つけたものです。オーバーヘッドは非常に面白い解決策のように思えます。
こちらがお役に立てば幸いです。