当前位置: 代码迷 >> Eclipse >> java播放wav文件,该如何处理
  详细解决方案

java播放wav文件,该如何处理

热度:47   发布时间:2016-04-23 00:19:05.0
java播放wav文件
用AudioInputStream实现  
用application打开
放不出声音,下面提示错误
java.io.IOException: mark/reset not supported
at java.io.InputStream.reset(Unknown Source)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unknown Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at SoundDemo.<init>(SoundDemo.java:22)
at SoundDemo.main(SoundDemo.java:43)


我的wav文件可以放出来的
代码如下:是摘自一本书上的。
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JButton;
import javax.swing.JFrame;


public class SoundDemo extends JFrame{
private JButton button=new JButton("暂停");
private Clip clip;
public SoundDemo(){
setSize(300,300);
setLocation(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
InputStream stream=new FileInputStream("song1.wav");
AudioInputStream audioStream=AudioSystem.getAudioInputStream(stream);
clip=AudioSystem.getClip();
clip.open(audioStream);
clip.start();
}catch(Exception e){e.printStackTrace();}
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
if(button.getText().equals("暂停")){
clip.stop();
button.setText("重新开始");
}
else{
clip.start();
button.setText("暂停");
}
}
});
setLayout(new FlowLayout());
add(button);
}
public static void main(String[] args){
SoundDemo frame=new SoundDemo();
frame.setVisible(true);
}
}

------解决思路----------------------
File file=new File("C:\\Users\\Tachibana Kanade\\workspace\\test\\月に祈る ~prologue~.wav");
AudioInputStream audioStream=AudioSystem.getAudioInputStream(file);
改成这样了
可以播放,无错误
原因不知道怎么回事
  相关解决方案