从输入设备采样数据时,我是否可以调节闪存触发 SAMPLE_DATA 事件的频率?我需要不断地采样(甚至是沉默)。
var mySound:Sound = new Sound();
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
AFAIK 目前这个函数被调用 20 次/秒
从输入设备采样数据时,我是否可以调节闪存触发 SAMPLE_DATA 事件的频率?我需要不断地采样(甚至是沉默)。
var mySound:Sound = new Sound();
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
AFAIK 目前这个函数被调用 20 次/秒
使用来自http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/SampleDataEvent.html的示例代码
var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
for ( var c:int=0; c<8192; c++ ) {
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
}
}
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();
你写的数据越少,方法被调用的频率就越高。
如果您经常调用它,声音可能会变得刺耳和粗糙。尝试调整帧速率。