.wav格式和.au格式的彩铃文件转换问题(Linux)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > .wav格式和.au格式的彩铃文件转换问题(Linux)

.wav格式和.au格式的彩铃文件转换问题(Linux)

 2010/11/17 22:49:32  fisherhe  http://fisherhe.javaeye.com  我要评论(0)
  • 摘要:之前一直纠结语音格式文件的处理上面,因为linux上只能读出.au格式的语音文件但是用户上传能上传.wav格式。想直接通过java的方式来处理,但是找了很久的资料没有找到解决办法,最后项目经理把linux的一段命令转换格式的代码给我,才想出解决办法.项目的部分代码(前面的代码忽略):/*得到上传的彩铃文件的文件名*/Stringfilename=model.getFileFileName();/***得到文件名前缀*/StringfilePreffix=filename.substring(0
  • 标签:.wav格式和.au格式彩铃文件转换

??之前一直纠结语音格式文件的处理上面,因为linux上只能读出.au格式的语音文件但是用户上传能上传.wav格式。想直接通过java的方式来处理,但是找了很久的资料没有找到解决办法,最后项目经理把linux的一段命令转换格式的代码给我,才想出解决办法.

??项目的部分代码(前面的代码忽略):

???

/*得到上传的彩铃文件的文件名*/ ?
String filename = model.getFileFileName();
			/**
			 * 得到文件名前缀
			 */
			String filePreffix = filename.substring(0, filename
					.lastIndexOf("."));
			/**
			 * 得到文件名后缀
			 */
			String fileSuffix = filename
					.substring(filename.lastIndexOf(".") + 1);
/**这里是核心代码  path是文件保存的路径*/
                String cmd = null;//linux下的命令
		Process pro = null;//启动进程
		Runtime runtime = Runtime.getRuntime();//得到linux下的运行环境
 	if (!("au".equalsIgnoreCase(fileSuffix))) {
				cmd = "sox " + path + filename + " -r 8000 -A -t  au -c 1 "+ path + filePreffix + ".au";
				pro = runtime.exec(cmd);
				pro.waitFor();
				cmd = "rm -f " + path + filename;
				pro = runtime.exec(cmd);
				pro.waitFor();
				// 设置文件格式为.au
				model.setFileFileName(filePreffix + ".au");
			}

?tip:上面的这种转换方式,通过java调用linux下的环境,进行linux上的操作,将.wav格式转换为.au格式的文件.

  • 相关文章
发表评论
用户名: 匿名