我研究了一下,我发现了一种在flash上动态生成声音的方法:
import flash.media.Sound;
var mySound:Sound = new Sound();
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, sineGenerateSound);
mySound.play();
function sineGenerateSound(event:SampleDataEvent):void{
for(var i:int=0;i<4092;i++){
var n:Number = Math.sin((i+event.position)/Math.PI/4);
event.data.writeFloat(n)
event.data.writeFloat(n)
}
}
我只想知道如何让它产生我需要的确切频率,例如100Hz。
谢谢!
答案 0 :(得分:8)
假设采样率为44.1kHz:
var freq:Number = 100; // example, 100 Hz, set this somewhere outside the for loop
var n:Number = Math.sin((i+event.position)*freq*2.0*Math.PI/44100.0);
答案 1 :(得分:2)
如果您还没有,请查看http://lab.andre-michelle.com/。那个男人做了一些很酷的事情。
他有一些合理的合成例子。
答案 2 :(得分:2)
我在博客上写过很多关于Flash音频合成主题的文章。以下是一些好的开始:
http://labs.makemachine.net/2010/06/note-frequency/