gpt4 book ai didi

Java - 使用音频剪辑时出现问题

转载 作者:行者123 更新时间:2023-12-01 14:11:51 26 4
gpt4 key购买 nike

我一直在 youtube 上搜索如何在 java 中添加声音的教程,它们似乎都做同样的事情,但这对我不起作用:

import java.applet.Applet;
import java.applet.AudioClip;

import javax.swing.JFrame;


public class main extends JFrame{

public main(){
super("hi");
setSize(480, 360);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] args){
main Main = new main();

AudioClip clip = Applet.newAudioClip(main.class.getResource("original.wav"));
clip.play();
}
}

当我尝试运行它时,它在初始化剪辑的行上给出了一个空指针异常。我怀疑这是因为我的文件网址错误。为了澄清起见,该文件位于项目文件夹中。

我也尝试过: AudioClip剪辑= null; 网址 url = null;

    try {
url = new URL("original.wav");
clip = Applet.newAudioClip(url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
clip.play();

但这也不起作用。它给了我一个 MalformedURLException

最佳答案

我所做的是使用 javax.sound.sampled 库。这是我用来加载剪辑的代码 -

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

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

return clip;
}

你可以像这样实现它。

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

将声音放在源文件“res”中的位置。我使用单独的函数来播放剪辑 -

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

我通常把它放在艺术课上,所以你可以这样调用它

Art.playClip( Art.sound );

希望这对您有帮助!

关于Java - 使用音频剪辑时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com