首页>代码>Java mp3文件转pcm文件>/ceshi/src/util/AudioUtils.java
package util;

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;

import javazoom.spi.mpeg.sampled.file.MpegAudioFileReader;

public class AudioUtils {
	public static void main(String[] args) {
		convertMP32Pcm("E:/upload/test.mp3","E:/upload/test.pcm");
	}
	/**
	 * MP3转换PCM文件方法
	 * 
	 * @param mp3filepath 原始文件路径
	 * @param pcmfilepath 转换文件的保存路径
	 * @return 
	 * @throws Exception
	 */
	private static boolean convertMP32Pcm(String mp3filepath, String pcmfilepath){
		try {
			//获取文件的音频流,pcm的格式
			AudioInputStream audioInputStream = getPcmAudioInputStream(mp3filepath);
			//将音频转化为  pcm的格式保存下来
			AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, new File(pcmfilepath));
			return true;
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
	}
	/**
	 * 创建日期:2018年1月14日<br/>
	 * 创建时间:下午9:53:14<br/>
	 * 创建用户:yellowcong<br/>
	 * 机能概要:获取文件的音频流
	 * @param mp3filepath
	 * @return
	 */
	private static AudioInputStream getPcmAudioInputStream(String mp3filepath) {
		File mp3 = new File(mp3filepath);
		AudioInputStream audioInputStream = null;
		AudioFormat targetFormat = null;
		try {
			AudioInputStream in = null;

			//读取音频文件的类
			MpegAudioFileReader mp = new MpegAudioFileReader();
			in = mp.getAudioInputStream(mp3);
			AudioFormat baseFormat = in.getFormat();

			//设定输出格式为pcm格式的音频文件
			targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16,
					baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);

			//输出到音频
			audioInputStream = AudioSystem.getAudioInputStream(targetFormat, in);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return audioInputStream;
	}
}
最近下载更多
最近浏览更多
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友