这里有新鲜出炉的精品教程,程序狗速度看过来!
ASP.NET 是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。
AMR转MP3可实现将手机上的AMR录音转换成流行的MP3格式,以适用更广泛的应用。AMR的体积非常小,适用于存储在手机中,当我们想将在手机上的音频上传到网络,就需要将其转换成MP3等流行的格式,本文就是介绍asp.net利用ffmpeg转换法将.amr转.mp3的方法,下面来一起看看吧。
前言
上篇文章已经跟大家分享了asp.net利用七牛转换法将.amr转.mp3的方法,当时也说了还有另外一种方法是利用ffmpeg转换法,下面这篇文章就给大家详细介绍这种方法。这种方法相对第一种来说,要简单的多!
FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。
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.phperz.com/article/17/0902/338060.html