.net 音频转换 .amr 转 .mp3 (七牛转换法)
.amr 用于移动设备的音频,压缩比比较大,多用于人声、通话,效果还行!所以,移动设备多采用amr格式来进行录存!比较常见的例子:通话录音,微信语音以及录音等!
这个鬼,用两个字来形容,就是“蛋疼”;因为HTML5压根就不支持它(amr:我是个《孤儿》 ,导演:佐米·希尔拉);所以,试听效果也就很难实现了!虽然微信是提供试听的,但一旦离开了页面,那就意味着,你再也无法播放你的录音了!
所以你不得不将文件转换下格式!
目前,小编掌握的转换格式的方法有两种:一是上传到七牛云服务进行转换下载;二是通过ffmpeg 应用进行转换!
七牛转换法:
1.首先,注册七牛云存储!
2.七牛会返给你“两张”通行证,通行证是通信七牛必不可少的工具!上图一张:

AK 和 SK 是程序执行的前提!
3.创建空间,添加队列!空间名称,和队列名称都用的到!
空间是存储你上传文件的仓库,队列是加工文件的工厂!可以创建多个!
空间需要配置域名!
4.下载七牛提供的源代码:我是链接
文件里面有个名为“Qiniu.4.0.dll”的文件,把它引用到你的项目中!
/// <summary>
/// 设置你的AK、SK 和 域名
/// </summary>
private static void SetKey()
{
//设置账号的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>
private string upload(string key, string filePath)
{
IOClient target = new IOClient();
PutExtra extra = new PutExtra(); //设置文件上传后所存储的空间名称
String bucket = "amrtest"; //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
PutPolicy put = new PutPolicy(bucket, ); //对转码后的文件进行使用saveas参数自定义命名,也可以不指定,文件会默认命名并保存在当前空间。
string mp3tpname = key.Split('.')[].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 = ;
// "|"竖线前是你要转换格式的命令;竖线后是转换完成后,文件的命名和存储的空间的名称!
put.PersistentOps = "avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/" + urlbase64;
//规定文件要在那个“工厂”进行改装,也就是队列名称!
put.PersistentPipeline = "LittleBai";
//音视频转码持久化完成后,七牛的服务器会向用户发送处理结果通知。这里指定的url就是用于接收通知的接口。
//设置了`persistentOps`,则需要同时设置此字段
put.PersistentNotifyUrl = "http://***.###.com/***/default.aspx"; //生成上传Token
string upToken = put.Token();
//上传文件
PutRet ret = target.PutFile(upToken, key, filePath, extra);
//返回数据格式:{"hash":"FvipQyyMwI0gvGc7_NUd8OVBuJ85","key":"55456.amr","persistentId":"z0.57eb86a945a2652644d64308"}
return ret.Response.ToString();
}
6.最后,将转换好的文件从七牛空间下载到当前服务器上。
/// <summary>
/// 下载
/// </summary>
/// <param name="key">转好格式的文件名称</param>
/// <param name="savepath">下载后的保存路径</param>
/// <returns></returns>
private string download(string key, string savepath)
{
//构造私有空间的需要生成的下载的链接 你帮定在空间的域名 加 要下载的文件名
string baseUrl = "http://***.###.com/" + key;
//调用MakeRequest方法生成私有下载链接
string private_url = GetPolicy.MakeRequest(baseUrl);
//下载文件
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(private_url);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();
string strpath = myResponse.ResponseUri.ToString();
WebClient mywebclient = new WebClient();
try
{
mywebclient.DownloadFile(strpath, savepath);
}
catch (Exception ex)
{
savepath = ex.ToString();
}
}
return savepath;
}
OK,转换完成!附效果图一张:

转载请注明本博地址:http://www.cnblogs.com/LittleBai/p/5924416.html
绝对原创,转载请注明!
好了,到此结束!拙文一篇,望海涵!
如有疑问,欢迎骚扰,Q群:225443677 TKS!
.net 音频转换 .amr 转 .mp3 (七牛转换法)的更多相关文章
- .net 音频转换 .amr 转 .mp3 (ffmpeg转换法)
最近看来是跟声音干上了啊! 音频转换的第二种方法,这种方法相对第一种来说,要简单的多! 首先,你得下载个“ffmpeg.exe” 插件,然后把它放到你的项目中,如下图: 程序中会调用该文件,以助于转换 ...
- 七牛php-sdk使用
使用七牛云存储服务有一年多了,大部分功能基于其PHP-SDK来做开发,现对sdk的一些功能做一个总结. 一.资源上传 上传资源文件到七牛空间的不同实现方法 二.文档转换 介绍如何使用七牛以及七牛第三方 ...
- FFMPEG 音频转换命令
音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...
- 七牛php-sdk使用-文档处理
所用到的七牛文档转换服务,主要是:ppt文件转为pdf文件,pdf文件转图片(png). 描述一下需求:上传PPT或者PDF文件到七牛,最终转换为图片.文件上传部分的功能已经讲过了,这里说一下转换处理 ...
- iOS 通过(lame)将录制音频转换成Mp3
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处,保留原帖地址及作者署名. Url:http://blog.csdn.net/ysy441088327/article/detail ...
- javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- 如何将AAC音频转换成MP3格式
我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...
- 使用jave2实现将wav格式的音频转换成mp3格式
最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...
- window64 PHP ffmpeg详解简单上手 音频amr转mp3
从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...
随机推荐
- 使用Apache Ant合并多个jar
Apache Ant下载地址 下载解压后进入bin目录,并在此目录打开cmd 在cmd中运行ant,运行结果为: Buildfile: build.xml does not exist! Build ...
- HTML 客户端存储
在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...
- POJ3111 K Best —— 01分数规划 二分法
题目链接:http://poj.org/problem?id=3111 K Best Time Limit: 8000MS Memory Limit: 65536K Total Submissio ...
- 织梦CMS被挂马特征汇总
一.织梦CMS被挂马特征汇总 2013织梦CMS被挂马特征汇总.最近很多朋友反应后台多了几个系统管理员用户:service.spider等,而且自己之前的管理员用户登陆时候会提示用户名不存在.还有朋友 ...
- JavaScript Map对象的实现
1. [代码]js代码 /* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() ...
- Servlet初始配置 监听器和过滤器
ServletContext:application范围内的参数 此所设定的参 来源: http://note.sdo.com/my 数,在JSP网页中可以使用下列方法来取得: ${initParam ...
- GCD的使用(1)使用GCD保护property
作为一个iOS开发者,必须要熟练使用GCD,本文是站在实际应用的角度总结GCD的用法之一: 使用barrier保护property.在多线程环境下,如果有多个线程要执行同一份代码,那么有时会出现问题, ...
- GYM 100741A Queries
传送门 题目大意: 一个长度为n的序列,q次三种操作 +p r:下标为p的数+r -p r:下标为p的数-r s l r mod [L,R]中有多少数%m=mod,m已经给出 题解: 开十个树状数组 ...
- 交通规划_dijkstra
问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路. ...
- Integrate Your Code with the Frameworks---整合你的代码和框架
Back to Frameworks Integrate Your Code with the Frameworks When you develop an app for OS X or iOS, ...