许久没来这里了,查看最近写博客还是在2014年10月,想想2015年也是够懒的。
今天登陆博客,发现有几个网友在几个月前均有私信我 关于对arm音频格式转换的问题,想必网上没有较好的案例,今天就特意写篇此类文,供大家参考。
1 背景:
当初我们一个小项目需要实现 从移动端(类似微信)发送音频至服务器端,然后管理员 对发送的音频 B/S中播放, 网页插件不能直接播放arm格式文件,因此采取后台接收文件后自动转换为 wav 供B/S播放。
2 转换程序:
采用Fmpeg格式转换工具,能对arm,mp4,mp3,wav 等绝大多数音频转换。
下载地址 www.ffmpeg.org/download.html
3 转换案例:
采用window进程命令转换
public static bool ConvAmrToWav(string filePath,string toPath)
{
if (string.IsNullOrEmpty(filePath)) return false;
if (!System.IO.File.Exists(filePath)) return false;
if (System.IO.File.Exists(toPath))
System.IO.File.Delete(toPath);
string command_line = " -i \"" + filePath + "\" -map 0:a -b:a 64k \"" + toPath + "\"";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo();
startinfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo = startinfo;
proc.StartInfo.WorkingDirectory = Application.StartupPath;
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "ffmpeg";
proc.StartInfo.Arguments = command_line;
proc.Start();
proc.WaitForExit();
proc.Close();
return System.IO.File.Exists(toPath);
}
以上就是arm转换way格式的例子,对于其他格式转换 只需要更换command_line参数即可。