gpt4 book ai didi

java - 在java中播放音频文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:18 24 4
gpt4 key购买 nike

我的目标是制作一个程序,通过一个名为play的按钮显示弹出窗口。我正在使用内部类和 Action 监听器。该按钮实际上会播放音频剪辑。现在我想做的是,每次我按下播放按钮时,它都会从头开始播放,并且在完成时我不会听到超过一个剪辑实例。这是我仅用于内部类的代码:

private class PlaySound implements ActionListener {

public void actionPerformed(ActionEvent e) {
String filename = "/Users/philipgouldman/Desktop/iPhoneRingtones/Dummy_Yeah.wav";

try {
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File(filename)));
clip.setFramePosition(0);
clip.start();
} catch (Exception exc) {
exc.printStackTrace(System.out);
}
}

}

对于实现这一目标的任何提示或建议,我将不胜感激。我在 Clip Interface javadoc 上读到,如果用户希望重新启动操作,只需调用 setFramePosition(0) 之后的 stop 即可。我不能说我完全理解这意味着什么。有人可以引导我走向正确的方向吗?

最佳答案

将您的 Clip 对象移到此句柄之外,以便稍后调查其状态。

例如

private class PlaySound implements ActionListener {

private Clip clip = null;
public void actionPerformed(ActionEvent e) {
String filename = "/Users/philipgouldman/Desktop/iPhoneRingtones/Dummy_Yeah.wav";

try {
if (clip == null) {
clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File(filename)));
}
clip.setFramePosition(0);
clip.start();
} catch (Exception exc) {
exc.printStackTrace(System.out);
}
}

}

关于java - 在java中播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381760/

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