Java 生成声音

2022-09-03 17:09:21

我创建了一个pong克隆,我想在发生碰撞时添加一些声音效果。我的问题是,我能找到的关于合成声音的每个示例大约需要30行代码,考虑到我的整个应用程序只有90行代码。我正在寻找一种更简单的方法。有没有一种简单的方法来产生不同音调的哔哔声?持续时间无关紧要。我只想要一系列不同音调的哔哔声。


答案 1

下面是一个从 Java Sound 获取(并缩短)的小示例 - 示例:生成音频音调的代码

    byte[] buf = new byte[ 1 ];;
    AudioFormat af = new AudioFormat( (float )44100, 8, 1, true, false );
    SourceDataLine sdl = AudioSystem.getSourceDataLine( af );
    sdl.open();
    sdl.start();
    for( int i = 0; i < 1000 * (float )44100 / 1000; i++ ) {
        double angle = i / ( (float )44100 / 440 ) * 2.0 * Math.PI;
        buf[ 0 ] = (byte )( Math.sin( angle ) * 100 );
        sdl.write( buf, 0, 1 );
    }
    sdl.drain();
    sdl.stop();

答案 2

java.awt.Toolkit.getDefaultToolkit().beep()

一连串的哔哔声?

int numbeeps = 10;

for(int x=0;x<numbeeps;x++)
{
  java.awt.Toolkit.getDefaultToolkit().beep();
}

推荐