提问人:Alex Vathana 提问时间:11/7/2022 更新时间:11/7/2022 访问量:93
无法播放剪辑声音
Could not play a clip sound
问:
我是编程新手,我不知道如何播放声音剪辑。代码运行流畅,但 intellij 没有发出声音。
这是我的代码
package ProjectWumpus;
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
public class testClass {
public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
File file = new File("C:\\Users\\Correct_Answer_Sound_Effect.wav");
AudioInputStream audiostream = AudioSystem.getAudioInputStream(file);
Clip clip = AudioSystem.getClip();
clip.open(audiostream);
clip.start();
我的电脑上的音频工作正常。
答:
0赞
Phil Freihofner
11/7/2022
#1
在评论中,两位受访者都指出,该程序在有机会播放之前就关闭了。 立即将控制权交还给主线程。执行播放的代码位于线程上。 线程不会打开准备关闭的程序。Clip
Clips
daemon
Daemon
FWIW,这也许是一种更好的测试方法。在下面的代码中,一个简单的 GUI:一个播放声音的按钮。这是剪辑使用方式的更典型。
public class TestClip {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run()
{
DemoFrame frame = new DemoFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class DemoFrame extends JFrame {
private static final long serialVersionUID = 1L;
private Clip clip;
public DemoFrame() {
setSize(300, 100);
JPanel panel = new JPanel();
JButton button = new JButton("Play clip");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clip.setFramePosition(0);
clip.start();
}
});
panel.add(button);
add(panel);
// Set up the Clip
URL url = this.getClass().getResource("mySound.wav");
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip = AudioSystem.getClip();
clip.open(ais);
} catch ( LineUnavailableException e) {
e.printStackTrace();
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
我建议使用over作为该方法。在本例中,假定音频资源与调用它的类位于同一目录中。A 的好处是,当类被打包在 jar 中时,它可以工作(与 不同)。URL
File
getAudioInputStream
URL
File
评论