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

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

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

目前,小编掌握的转换格式的方法有两种:一是上传到七牛云服务进行转换下载;二是通过ffmpeg 应用进行转换!

七牛转换法:

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

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

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

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

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

空间需要配置域名!

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

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

  1.    /// <summary>
  2. /// 设置你的AK、SK 和 域名
  3. /// </summary>
  4. private static void SetKey()
  5. {
  6. //设置账号的AK和SK
  7. Config.ACCESS_KEY = "########################################";
  8. Config.SECRET_KEY = "****************************************";
  9. Config.API_HOST = "http://###.***.com";
  10. }

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

  1.    /// <summary>
  2. /// 上传文件并预转格式
  3. /// </summary>
  4. /// <param name="key">要转换格式的文件名</param>
  5. /// <param name="filePath">文件路径</param>
  6. /// <returns></returns>
  7. private string upload(string key, string filePath)
  8. {
  9. IOClient target = new IOClient();
  10. PutExtra extra = new PutExtra();
  11.  
  12. //设置文件上传后所存储的空间名称
  13. String bucket = "amrtest";
  14.  
  15. //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
  16. PutPolicy put = new PutPolicy(bucket, );
  17.  
  18. //对转码后的文件进行使用saveas参数自定义命名,也可以不指定,文件会默认命名并保存在当前空间。
  19. string mp3tpname = key.Split('.')[].ToString() + ".mp3";
  20. String urlbase64 = Qiniu.Util.Base64URLSafe.Encode(bucket + ":" + mp3tpname);
  21.  
  22. //一般指文件要上传到的目标存储空间(Bucket)。若为“Bucket”,
  23. //表示限定只能传到该Bucket(仅限于新增文件);若为”Bucket:Key”,表示限定特定的文件,可修改该文件。
  24. put.Scope = bucket + ":" + key;
  25. // 可选。 若非0, 即使Scope为 Bucket:Key 的形式也是insert only.
  26. put.InsertOnly = ;
  27. // "|"竖线前是你要转换格式的命令;竖线后是转换完成后,文件的命名和存储的空间的名称!
  28. put.PersistentOps = "avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/" + urlbase64;
  29. //规定文件要在那个“工厂”进行改装,也就是队列名称!
  30. put.PersistentPipeline = "LittleBai";
  31. //音视频转码持久化完成后,七牛的服务器会向用户发送处理结果通知。这里指定的url就是用于接收通知的接口。
  32. //设置了`persistentOps`,则需要同时设置此字段
  33. put.PersistentNotifyUrl = "http://***.###.com/***/default.aspx";
  34.  
  35. //生成上传Token
  36. string upToken = put.Token();
  37. //上传文件
  38. PutRet ret = target.PutFile(upToken, key, filePath, extra);
  39. //返回数据格式:{"hash":"FvipQyyMwI0gvGc7_NUd8OVBuJ85","key":"55456.amr","persistentId":"z0.57eb86a945a2652644d64308"}
  40. return ret.Response.ToString();
  41. }

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

  1.   /// <summary>
  2. /// 下载
  3. /// </summary>
  4. /// <param name="key">转好格式的文件名称</param>
  5. /// <param name="savepath">下载后的保存路径</param>
  6. /// <returns></returns>
  7. private string download(string key, string savepath)
  8. {
  9. //构造私有空间的需要生成的下载的链接 你帮定在空间的域名 加 要下载的文件名
  10. string baseUrl = "http://***.###.com/" + key;
  11. //调用MakeRequest方法生成私有下载链接
  12. string private_url = GetPolicy.MakeRequest(baseUrl);
  13.      //下载文件
  14. HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(private_url);
  15. req.Method = "GET";
  16. using (WebResponse wr = req.GetResponse())
  17. {
  18. HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();
  19. string strpath = myResponse.ResponseUri.ToString();
  20. WebClient mywebclient = new WebClient();
  21. try
  22. {
  23. mywebclient.DownloadFile(strpath, savepath);
  24. }
  25. catch (Exception ex)
  26. {
  27. savepath = ex.ToString();
  28. }
  29. }
  30. return savepath;
  31. }

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. 深度学习入门-4.1 AND.py 源码分析

    源代码 ------------------------------------------------------------------------------------------------ ...

  2. 跳转到AppStore 的不同位置办法

    程序跳转到appstore中指定的应用 1.进入appstore中指定的应用NSString *str = [NSString stringWithFormat:                    ...

  3. UVA-11549(floyd判圈算法)

    题意: 给一个整数k,每次平方后只能显示结果的前n位,问在这个过程中能得到的最大的数是多少; 思路: floyd判圈算法;它的正确性建立在这得到的这些数是有限的,所以一定是一个循环,在这个循环的圈里面 ...

  4. ios打印frame等格式

    1.打印frame:NSLog(@"%@",NSStringFromCGRect(pickerView.frame)); 或者CFShow(NSStringFromCGRect(p ...

  5. 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解

    [比赛链接] 点击打开链接 [题解] Problem A Word Correction[字符串] 不用多说了吧,字符串的基本操作 Problem B  Run for your prize[贪心] ...

  6. GYM 100741A Queries

    传送门 题目大意: 一个长度为n的序列,q次三种操作 +p  r:下标为p的数+r -p r:下标为p的数-r s l r mod [L,R]中有多少数%m=mod,m已经给出 题解: 开十个树状数组 ...

  7. Autolayout UIScrollView

    http://www.cocoachina.com/ios/20141011/9871.html Xcode6中如何对scrollview进行自动布局(autolayout)   Xcode6中极大的 ...

  8. nodejs supvisor模块

    在测试nodejs程序的时候,每次都需要在控制台编译,非常的麻烦.supervisor是一款无需重复手动编译,自动后台监听文件变化来自动编译,并且不需要在项目内require,使用非常的方便. 使用方 ...

  9. 【旧文章搬运】Windows内核常见数据结构(内核对象)

    原文发表于百度空间,2008-7-23========================================================================== 继续学习,继 ...

  10. DC 兼容的DC

    DC是 "Device Content" , MS VC++ 的 MFC图形设备接口 的 设备描述表.它是MFC的主要对象之一.通过CDC类进行各种绘图操作,例如选笔,选色,选涂色 ...