.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 (七牛转换法)的更多相关文章

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

    最近看来是跟声音干上了啊! 音频转换的第二种方法,这种方法相对第一种来说,要简单的多! 首先,你得下载个“ffmpeg.exe” 插件,然后把它放到你的项目中,如下图: 程序中会调用该文件,以助于转换 ...

  2. 七牛php-sdk使用

    使用七牛云存储服务有一年多了,大部分功能基于其PHP-SDK来做开发,现对sdk的一些功能做一个总结. 一.资源上传 上传资源文件到七牛空间的不同实现方法 二.文档转换 介绍如何使用七牛以及七牛第三方 ...

  3. FFMPEG 音频转换命令

    音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...

  4. 七牛php-sdk使用-文档处理

    所用到的七牛文档转换服务,主要是:ppt文件转为pdf文件,pdf文件转图片(png). 描述一下需求:上传PPT或者PDF文件到七牛,最终转换为图片.文件上传部分的功能已经讲过了,这里说一下转换处理 ...

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

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处,保留原帖地址及作者署名. Url:http://blog.csdn.net/ysy441088327/article/detail ...

  6. javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  7. 如何将AAC音频转换成MP3格式

    我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...

  8. 使用jave2实现将wav格式的音频转换成mp3格式

    最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...

  9. window64 PHP ffmpeg详解简单上手 音频amr转mp3

    从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...

随机推荐

  1. 关于JAVA中的前期绑定 后期绑定(动态绑定)

    前期绑定,在程序执行前根据编译时类型绑定,调用开销较小,如C语言只有前期绑定这种方法调用. 后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定.实现后期绑定,需要某种机制支持,以便 ...

  2. 从源码理解 ThreadLocal

    为每个线程保存各自的拷贝,可以通过在Thread类中定义一个成员变量来保存每个线程值,这样也是线程安全的. 通过定义一个成员变量 sn 来实现,这里并没有使用ThreadLocal类来实现: publ ...

  3. 序列流、对象操作流、打印流、标准输入输出流、随机访问流、数据输入输出流、Properties(二十二)

    1.序列流 * 1.什么是序列流 * 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推.* 2.使用方式 * 整合两个 ...

  4. iOS 观察者模式(KVO)的简单使用

    KVO的全称是Key-Value Observing,它实现了一种机制,对所关心的属性对象添加观察者,当属性值发生变化时会得到通知,我们可以对变化做相应的处理.看过设计模式的同学应该知道,这是一种典型 ...

  5. [SHOI 2009] 会场预约

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2028 [算法] 直接用std :: set维护即可 时间复杂度 : O(NlogN) ...

  6. Spring中的扩展点

    Spring作为一个常用的IOC框架,在设计上预留了很多的扩展点,很多第三方开源框架,包括Spring自身也是基于这些扩展点实现的,这很好的体现了对修改关闭.对扩展开放的原则.总的来说Spring的扩 ...

  7. const 和指针

    c++用了那么久,觉得 const 和指针配合到一起的时候就会有点点分不出来. 如下: const Data* pData; Data const * pData Data * const pData ...

  8. 开启sqlplus中执行计划

    在sqlplus中我们一般用Autotrace来查看执行计划,从而对于一些语句执行过程分析,开展优化工作.这里就演示一下如何将autotrace权限授予给普通的用户,以scott用户为例(set au ...

  9. Unity网格合并_材质合并[转]

    http://blog.csdn.net/chenggong2dm/article/details/41699029

  10. 从mysql高可用架构看高可用架构设计

    高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...