为什么我的声音播放不了呢,代码如下

A18767101172 2013-04-10 10:04:52

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

public class MyAudioPlayer{
static AudioClip shot=Applet.newAudioClip(MyAudioPlayer.class.getClassLoader().getResource("sounds/Sleep.wav"));
boolean flag = false;
public static void main(String[]args){
new MyAudioPlayer();
}
MyAudioPlayer(){
shot.play();
shot.loop();
shot.stop();
}
/*class MyThread extends Thread{

}*/
}
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
A18767101172 2013-04-10
  • 打赏
  • 举报
回复
import sun.audio.*; import java.io.*; public class Sound { public static void main(String args[]) { try { FileInputStream fileau=new FileInputStream("D:\\Javawork\\Study\\bin\\csdn\\sounds\\Sleep.wav"); AudioStream as=new AudioStream(fileau); AudioPlayer.player.start(as); } catch (Exception e) {} } }
A18767101172 2013-04-10
  • 打赏
  • 举报
回复
import javax.sound.sampled.*; import java.io.*; public class MyAudioPlayer{ private AudioFormat format; private byte[] samples; public static void main(String args[])throws Exception{ MyAudioPlayer sound =new MyAudioPlayer("D:\\Javawork\\Study\\bin\\csdn\\sounds\\Sleep.wav"); InputStream stream =new ByteArrayInputStream(sound.getSamples()); // play the sound sound.play(stream); // exit System.exit(0); } public MyAudioPlayer(String filename) { try { // open the audio input stream AudioInputStream stream =AudioSystem.getAudioInputStream(new File(filename)); format = stream.getFormat(); // get the audio samples samples = getSamples(stream); } catch (UnsupportedAudioFileException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public byte[] getSamples() { return samples; } private byte[] getSamples(AudioInputStream audioStream) { // get the number of bytes to read int length = (int)(audioStream.getFrameLength() * format.getFrameSize()); // read the entire stream byte[] samples = new byte[length]; DataInputStream is = new DataInputStream(audioStream); try { is.readFully(samples); } catch (IOException ex) { ex.printStackTrace(); } // return the samples return samples; } public void play(InputStream source) { // use a short, 100ms (1/10th sec) buffer for real-time // change to the sound stream int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10); byte[] buffer = new byte[bufferSize]; // create a line to play to SourceDataLine line; try { DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line = (SourceDataLine)AudioSystem.getLine(info); line.open(format, bufferSize); } catch (LineUnavailableException ex) { ex.printStackTrace(); return; } // start the line line.start(); // copy data to the line try { int numBytesRead = 0; while (numBytesRead != -1) { numBytesRead = source.read(buffer, 0, buffer.length); if (numBytesRead != -1) { line.write(buffer, 0, numBytesRead); } } } catch (IOException ex) { ex.printStackTrace(); } // wait until all data is played, then close the line line.drain(); line.close(); } } 我又改了下,却抛出了异常,大神帮我瞧瞧

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧