/**
* 此方法需要用到第三方jar包 我这用到tritonus_share-0.3.6.jar
**/
private static final int EXTERNAL_BUFFER_SIZE = 128000;
public static void main(String[] args){
play("D:\\Backup\\ALARM8.WAV"); //可以放到while里面循环播放音乐
}
/**
* 播放音频文件 支持音频格式 wav mid aif,此方法不支持mp3 wma au
*@param strFileName 文件路径
*/
public static void play(String strFilename){
if (strFilename.length() <= 0)
{
printUsageAndExit();
}
//把声音文件 放到文件对象里
File soundFile = new File(strFilename);
//读出这个声音文件
AudioInputStream audioInputStream = null;
try
{
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
}
catch (Exception e)
{ //如果读取文件失败,则抛出这个异常
e.printStackTrace();
throw new MonitorException(e.getMessage());
} //从这个audioInputStream流数据得到java能解读的声音格式
AudioFormat audioFormat = audioInputStream.getFormat(); //通过audioFormat格式得到正常播放的数据line
SourceDataLine line = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class,
audioFormat);
try
{
line = (SourceDataLine) AudioSystem.getLine(info); //得到了数据line后,line还没准备好接受音频数据, 这里调用open 接收音频数据
line.open(audioFormat);
}
catch (LineUnavailableException e)
{
e.printStackTrace();
System.exit(1);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
} //line现在已经能接受数据了,但是还不能通过音频设备播出, 这里调用start 激活音频设备
line.start(); //这里把音频流读到缓存中,然后写到line中播放
int nBytesRead = 0;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
while (nBytesRead != -1)
{
try
{
nBytesRead = audioInputStream.read(abData, 0, abData.length);
}
catch (IOException e)
{
e.printStackTrace();
}
if (nBytesRead >= 0)
{
int nBytesWritten = line.write(abData, 0, nBytesRead);
}
} //等待所有的数据都播放完
line.drain(); //关闭line
line.close();
}
private static void printUsageAndExit()
{
System.exit(1);
}
javaFx播放音频 java怎么播放音频
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MediaPlayer播放音频
MediaPlayer播放音频
mediaplayer Android android xml 报错处理 -
播放音频
使用mediaplayer播放音频文件 [1]作用:这个类用于播放音频或者是视频
播放音频 ide 初始化 bundle 数据