这里需要用到第三方 ffmpeg.exe

package com.convertaudio;

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

import sun.rmi.runtime.Log;

public class ConvertAudio {

/**

* 检查文件是不是文件

* @param file

* @return

*/

public boolean checkFile(File file){

if(file.isFile())

return true;

else

return false;

}

/**

* 获取文件的后缀名

*/

public String getFileSuffix(File file){

String filename=file.getName();

String fileSuffixName=null;

if(filename!=null){

int startPosition=filename.lastIndexOf(".");

fileSuffixName=filename.substring(startPosition);

}

return fileSuffixName;

}

/**

* 检验后缀名是否符合转换要求

* @param suffixName

* @return

*/

public boolean checkFileSuffix(String suffixName){

switch (suffixName) {

case ".aac":

case ".avi":

case ".wmv":

case ".3gp":

case ".flv":

case ".mp4":return true;

default: return false;

}

}

/**

* 转换

* @param ffmpegPath

* @param srcFile

* @param destFile

* @return

*/

public boolean process(String ffmpegPath,File srcFile,File destFile){

if(this.checkFile(srcFile)){

String suffixName=this.getFileSuffix(srcFile);

if(this.checkFileSuffix(suffixName)){

List commend =new ArrayList();

commend.add(ffmpegPath);//"d:\\pcm\\ffmpeg.exe"

commend.add("-i");

commend.add(srcFile.toString());

commend.add("-ab");

commend.add("64");

// commend.add(" -acodec ");

// commend.add("codec");

commend.add("-ac");

commend.add("2");

commend.add("-ar");

commend.add("22050");

// 清晰度 -qscale 4 为最好可是文件大, -qscale 6就可以了

commend.add("-b");

commend.add("230");

// commend.add("-s");

// commend.add("350x240");

commend.add("-r");

commend.add("29.97");

commend.add("-y");

commend.add(destFile.toString());

System.out.println(commend);

System.out.println("----");

try {

ProcessBuilder builder = new ProcessBuilder();

builder.command(commend);

builder.start();

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

}else{

System.out.println(srcFile+" is not a file!");

}

return false;

}

public static void main(String[] args) {

File srcFile=new File("D:/pcm/baichuanyu.aac");

File destFile=new File("D:/pcm/baichuanyu.wav");

String ffmpegPath="d:/pcm/ffmpeg.exe";

ConvertAudio ca=new ConvertAudio();

if(ca.process(ffmpegPath, srcFile, destFile)){

Logger log= Logger.getLogger("test.Test");

log.log(Level.INFO, srcFile.getName()+" 已成功转换为 "+destFile.getName());

}

}

}

java 音频转换_java实现音频转换相关推荐

  1. java线程主要状态及转换_Java线程状态转换及控制

    线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead)这五 ...

  2. java 字母大写_Java字母大小写转换的方法

    案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...

  3. java wav 切割_java切割音频文件

    工具: 一个jar包即可:jave-1.0.2.jar 可以切割wav格式的音频文件 完整工程目录 就一个jar包,一个main类 代码: package com.zit; import java.i ...

  4. java的字母_Java字母大小写转换的方法

    案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...

  5. Java实现gbk utf8 转换_java项目编码格式转换(如GBK转UTF-8)

    昨天突然下了个Java项目,把项目导入到eclipse中,发现项目是gbk编码格式想把项目变为utf-8,但是发现转换格式比较麻烦就写了这个代码,后面改进了下,想到说不定有人也需要就把它写了出来 代码 ...

  6. java 日期函数转换_java 日期函数转换

    import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java ...

  7. java 自动类型_java类型自动转换

    package com.kevin.basic; /* * java类型自动转换方面的知识点 * int类型 double类型 默认类型 */ public class Test { /** * @p ...

  8. java隐含转化_java中自动转换和强制转换还有隐含转换

    匿名用户 1级 2016-08-29 回答 转型被用来将一个数值从一种类型转换到另一种类型.下面的程序连续使用了三个转型.那么它到底会打印出什么呢? public class Multicast{ p ...

  9. java日期转换_java日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

最新文章

  1. Java实用教程笔记 组件及事件处理
  2. Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
  3. HDU 1009 - FatMouse' Trade (部分背包问题)
  4. weblogic从入门到起飞!(域模块、扩展模块)(三)
  5. 查看apache连接数及apache工作原理
  6. 区块链JAVA数字交易所官方商业版开发级全套三端纯源码
  7. python动画精灵_【python游戏编程之旅】第六篇---pygame中的Sprite(精灵)模块和加载动画...
  8. 【免费毕设】php+mysql社区交流系统(毕业论文+系统+说明书)
  9. centos下不重装php——给PHP添加新扩展库
  10. BZOJ 1304: [CQOI2009]叶子的染色
  11. SWMM与Python的那些事 (一)
  12. 淘宝技术这十年 -- 目录
  13. python爬取晋江小说排行榜_【含代码】Python爬虫实战:爬取全站小说排行榜
  14. 元气骑士如何获得机器人成就皮肤_元气骑士:新版本皮肤上架,隐藏皮肤这样才能获得,其实很简单...
  15. myeclispe 启动报错Location Type Faceted project metadata file /farming/.settings/org.eclips
  16. 微信无法连接服务器10,微信无法连接到服务器【应对方式】
  17. 在for循环中运行setTimeout的三种情况
  18. 在金融业务中跨行清算系统的实现过程
  19. C++ Win32 删除文件夹(非空)
  20. SpringCloud之Gateway

热门文章

  1. 实车采集的数据重建场景_苹果地图经过新一轮数据采集,重建后的它会颠覆果粉想象吗?...
  2. 西北农林科技大学接口技术设计性实验一——8255并行接口实验
  3. Java bin 目录下的小工具使用与学习
  4. [人脸对齐--综述] Facial Landmark Detection: a Literature Survey(2018)
  5. MOBA摄像机表现及交互式操作
  6. FreeRTOS学习记录(四):任务、任务切换(难点)
  7. 【spark实训】-- Scala实现单词计数
  8. (转)一篇令所有游戏圈的兄弟汗颜的文章
  9. 计算机硬盘不能存储文件,磁盘已满,文件无法保存怎么弄
  10. 2021-01-06