Windows7上的Java声音API
我在上找到了这个测试代码 它在OSX上工作,但在我的PC Win7上不工作。Win7上的声音API有什么问题吗? 我安装了几个声音设备(集成和FireWire AudioInterface),两个都试过了,什么也没听到Windows7上的Java声音API,java,audio,windows-7,Java,Audio,Windows 7,我在上找到了这个测试代码 它在OSX上工作,但在我的PC Win7上不工作。Win7上的声音API有什么问题吗? 我安装了几个声音设备(集成和FireWire AudioInterface),两个都试过了,什么也没听到 import javax.sound.sampled.*; import java.io.*; /* * SoundTest.java * * Created on 1. August 2003, 21:06 */ /** * * @author Adminis
import javax.sound.sampled.*;
import java.io.*;
/*
* SoundTest.java
*
* Created on 1. August 2003, 21:06
*/
/**
*
* @author Administrator
*/
public class SoundTest {
/** Creates a new instance of SoundTest */
public SoundTest() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("sample.wav"));
AudioFormat af = audioInputStream.getFormat();
int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
byte[] audio = new byte[size];
DataLine.Info info = new DataLine.Info(Clip.class, af, size);
audioInputStream.read(audio, 0, size);
// for(int i=0; i < 32; i++) {
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(af, audio, 0, size);
clip.start();
// }
}catch(Exception e){ e.printStackTrace(); }
}
}
import javax.sound.sampled.*;
导入java.io.*;
/*
*SoundTest.java
*
*创建于1。2003年8月21:06
*/
/**
*
*@作者管理员
*/
公开课声音测试{
/**创建SoundTest的新实例*/
公共声音测试(){
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
试一试{
AudioInputStream AudioInputStream=AudioSystem.getAudioInputStream(新文件(“sample.wav”);
AudioFormat af=audioInputStream.getFormat();
int size=(int)(af.getFrameSize()*audioInputStream.getFrameLength());
字节[]音频=新字节[大小];
DataLine.Info=newdataline.Info(Clip.class,af,size);
audioInputStream.read(音频,0,大小);
//对于(int i=0;i<32;i++){
Clip Clip=(Clip)AudioSystem.getLine(info);
剪辑。打开(af,音频,0,大小);
clip.start();
// }
}catch(异常e){e.printStackTrace();}
}
}
谢谢回复
J如果您使用的是Java7,我建议您尝试使用JavaFXAPI。它们更加先进,跨平台兼容。在任何人询问之前,使用JavaFX时,您并不局限于web。您举了一个糟糕的例子,它混淆了两种不同方法的代码(自己阅读音频流,而不是让clip处理音频流) 这里的顶部答案显示了如何通过剪辑播放