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

来源:互联网 发布:一分钱图片淘宝怎么弄 编辑:程序博客网 时间:2024/06/14 10:44

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是生成的新文件。 文件的格式必须统一才可以。要不然会出现文件合成成功,但播放声音失败。

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

原创粉丝点击