.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;
        }
    }
}

 

接着來張效果圖:

好了,就這么簡單,不要不敢不相信你的眼睛,其實就是這么簡單!

最后,來個問題:你們解完手后,擦時,習慣用左手還是右手?

 

轉載請注明本博地址:http://www.cnblogs.com/LittleBai/p/5924416.html

 

原創,裝載注明!

有任何疑問歡迎進群騷擾:225443677  不要不好意思哦!

TKS!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM