我想根据用户输入在android中播放特定频率的声音,有点类似于吉他应用。谁能告诉我怎么做?我需要在res \ raw文件夹中包含所有freq声音吗?
答案 0 :(得分:4)
不,您不需要将其存储在资源中。我认为更好的方法是实时合成音调。为此,您需要以下内容:
答案 1 :(得分:2)
将声音发送到AudioTrack实例并动态更改其采样率。
答案 2 :(得分:1)
这是一个非常复杂的问题,即使它看起来不像。
当你说'声音'时,你只是指一个音调(例如正弦,方形,三角形,锯齿波)或你是否想播放吉他,钢琴等“真实”乐器的声音?
如果它是第一个(简单的音调),那么Desiderio的答案可能会在正确的轨道上,但如果你想要“真正的”insrument声音,那么你需要在/ res / raw或你的中有一个简短的'样本' / assets目录。
您可以将它们加载到SoundPool实例中并使用它以不同的“速率”进行播放,例如,2的“速率”将是速度的两倍,频率加倍,从而增加一个八度。 '速率'为0.5将是速度的一半,因此将声音降低八度。