您的位置:首页 > 编程语言 > Java开发

java获取Wav文件的属性及Wav音频文件的合成

2017-12-04 17:06 495 查看
1.WAVE文件的属性获取:

import javax.sound.sampled.AudioFormat;

public class get_wav_msg {
public static void main(String[] args) throws Exception {

javax.sound.sampled.AudioInputStream audio_file = javax.sound.sampled.AudioSystem.getAudioInputStream(new java.io.File("///kuangyifei/一.wav"));
audio_file.getFrameLength();
AudioFormat format = audio_file.getFormat();
System.out.println("format.toString() :"+format.toString());
System.out.println("channels :"+format.getChannels());//1 : mono  2:stereo  //声道
System.out.println("frameSize :"+format.getFrameSize());//2 bytes/frame  //每帧字节数
System.out.println("size in bits :"+format.getSampleSizeInBits());//16bit  //帧数
System.out.println("samplerate :"+format.getSampleRate()); //采样速率
System.out.println("frameRate  :"+format.getFrameRate());
}
}


2.WAVE文件的合并:

其中WELCOME.WAV 是模版文件。主要提供生成文件的格式

一.wav是合并文件1。二.wav是合并文件2

com_wav.wav是生成的新文件。 文件的格式必须统一才可以。要不
4000
然会出现文件合成成功,但播放声音失败。

public class combination_wav {
public static void main(String[] args) throws Exception{
mergeFile(new java.io.File("///kuangyifei/WELCOME.WAV"), new java.io.File("///kuangyifei/一.wav"), new java.io.File("///kuangyifei/二.wav"), new java.io.File("///kuangyifei/com_wav.wav"));
}

public static void mergeFile(java.io.File srcSammpe,java.io.File srcFile1, java.io.File srcFile2, java.io.File descFile) throws java.io.IOException,javax.sound.sampled.UnsupportedAudioFileException {
if(!descFile.exists()){
descFile.createNewFile();
}
javax.sound.sampled.AudioFileFormat aff = javax.sound.sampled.AudioSystem.getAudioFileFormat(srcSammpe);
System.out.println(aff.getType());
javax.sound.sampled.AudioInputStream ais1 = javax.sound.sampled.AudioSystem.getAudioInputStream(srcFile1);
javax.sound.sampled.AudioInputStream ais2 = javax.sound.sampled.AudioSystem.getAudioInputStream(srcFile2);

java.io.SequenceInputStream sis = new java.io.SequenceInputStream(ais1, ais2);

javax.sound.sampled.AudioSystem.write(new javax.sound.sampled.AudioInputStream(sis, aff.getFormat(), ais1.getFrameLength()
+ ais2.getFrameLength()), aff.getType(), descFile);

if (ais1 != null)
ais1.close();
if (ais2 != null)
ais2.close();
if (sis != null)
sis.close();

}
}


源码地址http://download.csdn.net/download/nepaltrip/10144699
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: