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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自在如风。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值