asp.net音频转换的.amr转.mp3教程(利用七牛转换法)

前言

相信大家应该都知道吧,.amr格式用于移动设备的音频,压缩比比较大,多用于人声、通话,效果还行!所以,移动设备多采用amr格式来进行录存!比较常见的例子:通话录音,微信语音以及录音等!

但是这个鬼,用两个字来形容,就是“蛋疼”;因为HTML5压根就不支持它(amr:我是个《孤儿》 ,导演:佐米·希尔拉);所以,试听效果也就很难实现了!虽然微信是提供试听的,但一旦离开了页面,那就意味着,你再也无法播放你的录音了!

所以你不得不将文件转换下格式!

目前,小编掌握的转换格式的方法有两种:一是上传到七牛云服务进行转换下载;二是通过ffmpeg 应用进行转换!本文先进行介绍利用七牛转换的实现方法,下面来一起看看吧。

七牛转换法:

1.首先,注册七牛云存储!

2.七牛会返给你“两张”通行证,通行证是通信七牛必不可少的工具!上图一张:

AK 和 SK 是程序执行的前提!

3.创建空间,添加队列!空间名称,和队列名称都用的到!

空间是存储你上传文件的仓库,队列是加工文件的工厂!可以创建多个!

空间需要配置域名!

4.下载七牛提供的源代码:我是链接

文件里面有个名为“Qiniu.4.0.dll”的文件,把它引用到你的项目中!

 

 代码如下 复制代码

/// <summary>

 /// 设置你的AK、SK 和 域名

 /// </summary>

 privatestaticvoidSetKey()

 {

  //设置账号的AK和SK

  Config.ACCESS_KEY ="########################################";

  Config.SECRET_KEY ="****************************************";

  Config.API_HOST ="http://###.***.com";

 }

 

5.上传文件,并通知七牛要给文件转换格式,以下例子是:.AMR格式  转 .MP3格式。

 

 代码如下 复制代码

/// <summary>

 /// 上传文件并预转格式

 /// </summary>

 /// <param name="key">要转换格式的文件名</param>

 /// <param name="filePath">文件路径</param>

 /// <returns></returns>

 privatestringupload(stringkey,stringfilePath)

 {

  IOClient target =newIOClient();

  PutExtra extra =newPutExtra();

 

  //设置文件上传后所存储的空间名称

  String bucket ="amrtest";

 

  //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间

  PutPolicy put =newPutPolicy(bucket, 3600);

 

  //对转码后的文件进行使用saveas参数自定义命名,也可以不指定,文件会默认命名并保存在当前空间。

  stringmp3tpname = key.Split('.')[0].ToString() +".mp3";

  String urlbase64 = Qiniu.Util.Base64URLSafe.Encode(bucket +":"+ mp3tpname);

 

  //一般指文件要上传到的目标存储空间(Bucket)。若为“Bucket”,

  //表示限定只能传到该Bucket(仅限于新增文件);若为”Bucket:Key”,表示限定特定的文件,可修改该文件。

  put.Scope = bucket +":"+ key;

  // 可选。 若非0, 即使Scope为 Bucket:Key 的形式也是insert only.

  put.InsertOnly = 0;

  // "|"竖线前是你要转换格式的命令;竖线后是转换完成后,文件的命名和存储的空间的名称!

  put.PersistentOps ="avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/"+ urlbase64;

  //规定文件要在那个“工厂”进行改装,也就是队列名称!

  put.PersistentPipeline ="LittleBai";

  //音视频转码持久化完成后,七牛的服务器会向用户发送处理结果通知。这里指定的url就是用于接收通知的接口。

  //设置了`persistentOps`,则需要同时设置此字段

  put.PersistentNotifyUrl ="http://***.###.com/***/default.aspx";

 

  //生成上传Token

  stringupToken = put.Token();

  //上传文件

  PutRet ret = target.PutFile(upToken, key, filePath, extra);

  //返回数据格式:{"hash":"FvipQyyMwI0gvGc7_NUd8OVBuJ85","key":"55456.amr","persistentId":"z0.57eb86a945a2652644d64308"}

  returnret.Response.ToString();

 }

 

6.最后,将转换好的文件从七牛空间下载到当前服务器上。

 

 代码如下 复制代码

/// <summary>

 /// 下载

 /// </summary>

 /// <param name="key">转好格式的文件名称</param>

 /// <param name="savepath">下载后的保存路径</param>

 /// <returns></returns>

 privatestringdownload(stringkey,stringsavepath)

 {

  //构造私有空间的需要生成的下载的链接 你帮定在空间的域名 加 要下载的文件名

  stringbaseUrl ="http://***.###.com/"+ key;

  //调用MakeRequest方法生成私有下载链接

  stringprivate_url = GetPolicy.MakeRequest(baseUrl);

     //下载文件

  HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(private_url);

  req.Method ="GET";

  using(WebResponse wr = req.GetResponse())

  {

   HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();

   stringstrpath = myResponse.ResponseUri.ToString();

   WebClient mywebclient =newWebClient();

   try

   {

    mywebclient.DownloadFile(strpath, savepath);

   }

   catch(Exception ex)

   {

    savepath = ex.ToString();

   }

  }

  returnsavepath;

 }

 

OK,转换完成!附效果图一张:

时间: 2024-12-28 21:20:48

asp.net音频转换的.amr转.mp3教程(利用七牛转换法)的相关文章

iOS 通过(lame)将录制音频转换成Mp3

转载请注明出处,保留原帖地址及作者署名. Url:http://blog.csdn.net/ysy441088327/article/details/7392842#reply Author:余书懿 为了达到 iPhone 与 Android 实现音频互通. 那么Mp3格式的音频文件再好不过了. 至于能够转换成Amr 是最好,10秒 的 一个Amr文件 只有5K左右的大小. 非常适合移动设备的数据传输 这里主要用到lame,一款非常棒的Mp3音频编码器.    那么在转换之前呢? 就需要先录制好

音频格式转换-ios音频转换 wav转成amr格式如何实现(要求64位的)

问题描述 ios音频转换 wav转成amr格式如何实现(要求64位的) 做一个录音功能,想把录音的格式转换为amr格式上传到服务器,但是网上搜到的都是几年前的,不支持64位架构,有没有大神知道如何在64位架构下的音频转换!!! 解决方案 如果你找的录音功能是采用lame库转换的话,64位架构可以参考一下这个地址:http://www.shaoqun.com/a/109102.aspx

全能音频转换通 v1.2 绿色版[推荐]保证下载_常用工具

全能音频转换通是一款音视频文件格式转换软件.它支持目前所有流行的媒体文件格式 (MP3/MP2/OGG/APE/WAV/WMA/AVI/RM/RMVB/ASF/MPEG/DAT),并能批量转换.更为强大的是,该软件能从视频文件中分离出音频流,转换成完整的音频文件.典型的应用如WAV转MP3,MP3转WMA,WAV转WMA,RM(RMVB)转MP3,AVI转MP3, RM(RMVB)转WMA等.您也可以从整个媒体中截取出部分时间段,转成一个音频文件,或者将几个不同格式的媒体转换并连接成一个音频文件

服务器-后端Java处理微信的语音AMR转Mp3?

问题描述 后端Java处理微信的语音AMR转Mp3? 后端Java处理微信服务器下载下来的语音AMR转Mp3 (语音是前端上传到微信服务器的). 有做过的嘛? 求教下怎么转啊? 正常的amr格式音频是可以实现转成MP3的,但是微信的语音音频不能,求大神指导 解决方案 http://mfan.iteye.com/blog/2032454

ASP处理XSLT转换XML的实现

使用ASP处理XSLT转换XML比较简单,思路如下:创建一个XSLTemplate的对象,再创建一个XMLDOM对象,然后在家Xml文件和XSLT文件,最后使用方法transform即可,包含到类里面,具体代码如下: 以下是引用片段: Class Cls_Xml_Transform Private lInput,XSLTemplate Private p_Output Public Property Get Output() Output = p_Output End Property Priv

asp数据强制转换的方法

asp数据强制转换  CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) (保留小数) CDec(expression) CInt(expression) (不保留小数) CLng(expression) (不保留小数) CSng(expression) CStr(expression) CVar(expression) CStr(expression) Vbscript类

asp相对路径转换成绝对路径

asp相对路径转换成绝对路径 Public Function ChkMapPath(ByVal strPath)  On Error Resume Next  Dim fullPath  strPath = Replace(Replace(Trim(strPath), "//", "/"), "\\", "\")  If strPath = "" Then strPath = "."  

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【七】——实现资源的分页

原文:使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[七]--实现资源的分页 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这篇文章我们将使用不同的方式实现手动分页(关于高端大气上档次的OData本文暂不涉及,但有可能会在系列的后期介绍,还没确定...),对于分页的结果,我们将采用2种不同的方式响应给客户端(1.将分页元数据封装在响应Body中2.在http响应报文头部添加分页信息). 众所周知,在服务器端一

微软官方ASP.NET.2.0快速入门 数据绑定那个教程的问题

问题描述 一个表列包括StudentID,StudentName,StudentPass,Sex,Birthday,Email,score用asp.net编程我想默认显示StudentID,StudentName,StudentPass,Sex,后增加一个详细信息选择时才显示整个列可是点击每个详细信息都显示第一行的数据怎样才能选择每行的详细信息显示对应的信息<%@PageLanguage="VB"AutoEventWireup="false"CodeFile=