.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. ajax访问json文件缓存问题

    ajax访问json文件,json文件改动,访问的时候也不能及时看到改动后的内容. 这是因为浏览器缓存的原因. 在这时候就需要清除浏览器的缓存或者加上一个标记,让ajax访问文件的时候知道这是一个新的 ...

  2. jconsole工具检测堆内存变化的使用

    jconsole将Java写的程序检测. 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使 ...

  3. golang copy函数

    数组切片内容复制 转自:http://studygolang.com/articles/4560 用于将内容从一个数组切片复制到另一个数组切片.如果加入的两个数组切片不一样大,就会按其中较小的那个数组 ...

  4. VC++编译说明

    目录 第1章编译步骤    1 第2章编译源文件    2 2.1 编译器    2 2.2 包含头文件    3 2.3 重复包含    6 2.4 预编译头文件    7 2.4.1 创建     ...

  5. I.MX6 新版、旧版u-boot不兼容问题

    /************************************************************************* * I.MX6 新版.旧版u-boot不兼容问题 ...

  6. Nth prime & numbers of primes (模板)

    都是取的模板,这几天做的素数题挺多的,所以整理了放在这里,感觉有一天回用到的! SPOJ:Nth Prime:     求第N个素数,N<1e9. #include<bits/stdc++ ...

  7. [Selenium] Automation Test Manual(Selenium)

    http://www.cnblogs.com/puresoul/p/3483055.html http://www.360doc.com/content/14/0913/10/13497042_409 ...

  8. 「咕咕网校 - 基础省选」树上问题的进阶 by Drench

    一定要在noip之前把自己花钱买的Luogu网课梳理完!QAQ 树上前缀和: 对于有根树,在每个点记录 val (点权) 和 sum(到根的点权之和) 当然记录的值因题而异(但是既然叫树上前缀和当然就 ...

  9. Cow Marathon(树的直径)

    传送门 Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 5362   Accepted: 2634 ...

  10. bzoj 2836 魔法树 —— 树链剖分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2836 树链剖分裸题: 写码五分钟,调码两小时,RE不断,狂交二十五遍,终于找到一处小细节—— ...