Sound オブジェクトからデータを抽出するには、
Sound.extract()
メソッドを使用します。そのデータを使用(および変更)して、再生用に別の Sound オブジェクトの動的ストリームに書き込むことができます。たとえば、次のコードでは、読み込んだ MP3 ファイルのバイトを、フィルター関数
upOctave()
を使用して渡しています。
var mySound = new air.Sound();
var sourceSnd = new air.Sound();
var urlReq = new air.URLRequest("test.mp3");
sourceSnd.load(urlReq);
sourceSnd.addEventListener(air.Event.COMPLETE, loaded);
function loaded(event)
{
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound);
mySound.play();
}
function processSound(event)
{
var bytes = new air.ByteArray();
sourceSnd.extract(bytes, 8192);
event.data.writeBytes(upOctave(bytes));
}
function upOctave(bytes)
{
var returnBytes = new air.ByteArray();
bytes.position = 0;
while(bytes.bytesAvailable > 0)
{
returnBytes.writeFloat(bytes.readFloat());
returnBytes.writeFloat(bytes.readFloat());
if (bytes.bytesAvailable > 0)
{
bytes.position += 8;
}
}
return returnBytes;
}
|
|
|