2011-01-17 10 views
1

私がサウンドスクリプトをactionscript 3でByteArrayとして保存している場合、これを再生可能なSoundオブジェクトに変換するにはどうすればよいですか?生成された波形をFlashでサウンドとして再生するにはどうすればよいですか?

アレイはサウンドサンプルでいっぱいです - 波形が完全に生成されていることに注意してください。 mp3などの圧縮データを含む配列ではありません。

答えて

4

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/

0

まあ私は本当に答えはありませんが、私はあなたにスレッドを読んでいると、この問題に非常に興味がありました。hereは私が見つけたものです。オーバーヘッドは非常に面白い解決策のように思えます。

こちらがお役に立てば幸いです。

関連する問題