java 音频转换_java实现音频转换
这里需要用到第三方 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实现音频转换相关推荐
- java线程主要状态及转换_Java线程状态转换及控制
线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead)这五 ...
- java 字母大写_Java字母大小写转换的方法
案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...
- java wav 切割_java切割音频文件
工具: 一个jar包即可:jave-1.0.2.jar 可以切割wav格式的音频文件 完整工程目录 就一个jar包,一个main类 代码: package com.zit; import java.i ...
- java的字母_Java字母大小写转换的方法
案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...
- Java实现gbk utf8 转换_java项目编码格式转换(如GBK转UTF-8)
昨天突然下了个Java项目,把项目导入到eclipse中,发现项目是gbk编码格式想把项目变为utf-8,但是发现转换格式比较麻烦就写了这个代码,后面改进了下,想到说不定有人也需要就把它写了出来 代码 ...
- java 日期函数转换_java 日期函数转换
import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java ...
- java 自动类型_java类型自动转换
package com.kevin.basic; /* * java类型自动转换方面的知识点 * int类型 double类型 默认类型 */ public class Test { /** * @p ...
- java隐含转化_java中自动转换和强制转换还有隐含转换
匿名用户 1级 2016-08-29 回答 转型被用来将一个数值从一种类型转换到另一种类型.下面的程序连续使用了三个转型.那么它到底会打印出什么呢? public class Multicast{ p ...
- java日期转换_java日期格式转换
突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...
最新文章
- Java实用教程笔记 组件及事件处理
- Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
- HDU 1009 - FatMouse' Trade (部分背包问题)
- weblogic从入门到起飞!(域模块、扩展模块)(三)
- 查看apache连接数及apache工作原理
- 区块链JAVA数字交易所官方商业版开发级全套三端纯源码
- python动画精灵_【python游戏编程之旅】第六篇---pygame中的Sprite(精灵)模块和加载动画...
- 【免费毕设】php+mysql社区交流系统(毕业论文+系统+说明书)
- centos下不重装php——给PHP添加新扩展库
- BZOJ 1304: [CQOI2009]叶子的染色
- SWMM与Python的那些事 (一)
- 淘宝技术这十年 -- 目录
- python爬取晋江小说排行榜_【含代码】Python爬虫实战:爬取全站小说排行榜
- 元气骑士如何获得机器人成就皮肤_元气骑士:新版本皮肤上架,隐藏皮肤这样才能获得,其实很简单...
- myeclispe 启动报错Location	Type Faceted project metadata file /farming/.settings/org.eclips
- 微信无法连接服务器10,微信无法连接到服务器【应对方式】
- 在for循环中运行setTimeout的三种情况
- 在金融业务中跨行清算系统的实现过程
- C++ Win32 删除文件夹(非空)
- SpringCloud之Gateway
热门文章
- 实车采集的数据重建场景_苹果地图经过新一轮数据采集,重建后的它会颠覆果粉想象吗?...
- 西北农林科技大学接口技术设计性实验一——8255并行接口实验
- Java bin 目录下的小工具使用与学习
- [人脸对齐--综述] Facial Landmark Detection: a Literature Survey(2018)
- MOBA摄像机表现及交互式操作
- FreeRTOS学习记录(四):任务、任务切换(难点)
- 【spark实训】-- Scala实现单词计数
- (转)一篇令所有游戏圈的兄弟汗颜的文章
- 计算机硬盘不能存储文件,磁盘已满,文件无法保存怎么弄
- 2021-01-06