0

在过去的 2 个小时里,我已经在谷歌上搜索,找不到一种非常基本的方法来加载音频文件并在我的程序中发生动作时播放它。我还需要能够将我的音频文件打包到最终导出的 jar 文件中,以便人们可以使用该程序并拥有必要的音频资源。

4

2 回答 2

1

我使用 javax.sound.sampled。

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

这是我用来加载“剪辑”的功能。

public Clip loadClip( String filename )
{
    Clip in = null;

    try
    {
        AudioInputStream audioIn = AudioSystem.getAudioInputStream( getClass().getResource( filename ) );
        in = AudioSystem.getClip();
        in.open( audioIn );
    }
    catch( Exception e )
    {
        e.printStackTrace();
    }

    return in;
}

就这样称呼吧

Clip sound = loadClip( "/sound.wav" );

声音文件必须在资源文件中(例如默认的 src 或我个人最喜欢的 res)。然后我制作一个函数来播放它:

public void playClip( Clip clip )
{
    if( clip.isRunning() ) clip.stop();
            clip.setFramePosition( 0 );
    clip.start();
}

我把它放在艺术课上,所以我会这样称呼它

Art.playClip( Art.sound );

代码应该是不言自明的,但如果它不起作用,我有一个关于如何做的视频教程(具有讽刺意味的声音错误导致它不记录):http ://www.youtube.com/watch ?v=mafOKyWWTpY 希望我对你有所帮助!

于 2013-09-10T01:41:02.693 回答
0

如果您要做的是访问低级 API,在大多数情况下不太可能。

http://docs.oracle.com/javase/tutorial/sound/

如果你只想播放 MP3 文件,你最好看看这个。

http://www.morgenstille.at/blog/how-to-play-a-mp3-file-in-java-simple-and-beautiful/

于 2013-09-10T01:34:11.200 回答