首页 > 代码库 > .net 音频转换 .amr 转 .mp3 (ffmpeg转换法)

.net 音频转换 .amr 转 .mp3 (ffmpeg转换法)

最近看来是跟声音干上了啊!

音频转换的第二种方法,这种方法相对第一种来说,要简单的多!

首先,你得下载个“ffmpeg.exe” 插件,然后把它放到你的项目中,如下图:

技术分享

程序中会调用该文件,以助于转换音频格式!

上代码:

using System;using System.Threading;using System.IO;using System.Diagnostics;using System.Security;public partial class cowala_201512Chritmas_amrtest : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {    if (!IsPostBack)     {      changedPlay.Visible = false;    }    }    protected void Ffmpeg_Click(object sender, EventArgs e)    {        if (AmrFileUp.HasFile)        {            string key = AmrFileUp.FileName;            string savepath = Server.MapPath("~/upload/amr/") + key;            AmrFileUp.SaveAs(savepath);            string mp3SavePth = Server.MapPath("~/upload/mp3/") + key.Split(.)[0].ToString() + ".mp3";            if (!string.IsNullOrEmpty(ConvertToMp3(savepath, mp3SavePth)))            {                changedPlay.Visible = true;                changedPlay.Attributes.Add("src", "upload/mp3/" + key.Split(.)[0].ToString() + ".mp3");                Response.Write("<script>alert(‘转换成功!‘);</script>");            }        }    }    public string ConvertToMp3(string pathBefore, string pathLater)    {        string c = Server.MapPath("/ffmpeg/") + @"ffmpeg.exe -i " + pathBefore + " " + pathLater;        string str = RunCmd(c);        return str;    }    /// <summary>    /// 执行Cmd命令    /// </summary>    private string RunCmd(string c)    {        try        {            ProcessStartInfo info = new ProcessStartInfo("cmd.exe");            info.RedirectStandardOutput = false;            info.UseShellExecute = false;            Process p = Process.Start(info);            p.StartInfo.UseShellExecute = false;            p.StartInfo.RedirectStandardInput = true;            p.StartInfo.RedirectStandardOutput = true;            p.StartInfo.RedirectStandardError = true;            p.Start();            p.StandardInput.WriteLine(c);            p.StandardInput.AutoFlush = true;            Thread.Sleep(1000);            p.StandardInput.WriteLine("exit");            p.WaitForExit();            string outStr = p.StandardOutput.ReadToEnd();            p.Close();            return outStr;        }        catch (Exception ex)        {            return "error" + ex.Message;        }    }}

 

接着来张效果图:

技术分享

好了,就这么简单,不要不敢不相信你的眼睛,其实就是这么简单!

最后,来个问题:你们解完手后,擦时,习惯用左手还是右手?

 

有任何疑问欢迎进群骚扰:225443677  不要不好意思哦!

TKS!!!

 

.net 音频转换 .amr 转 .mp3 (ffmpeg转换法)