安卓录音amr文件在PC端进行格式转换和播放

         最近在开发过程中,碰到了需要在网站上播放 安卓手机上传过来的录音 的难点。

        很容易想到的几种解决:

        第一是安卓手机直接录制成wav格式的文件上传到网站端。安卓系统本来是可以通过AudioRecorder 直接录制成wav格式,这样直接上传wav文件到网站端, 至于如何使用AudioRecorder直接录制wav格式的录音的问题,网上的资料已经很多了,大致的思路就是在保存的时候开一个线程根据录制时使用的 采样率、声道数、位数在文件头部加上 44 个字节。但是这种格式文件过大,1秒钟的录音有100多KB,那10秒钟就要消耗 用户 1MB 的 流量 ,显然这种方式不太可取。

        第二 是安卓手机录制amr格式的文件上传到网站端,浏览此网站的用户在自己的电脑上 将上 由 著名 的 苹果公司开发的一款浏览器插件:QuickTime ,网页里嵌入该插件的播放器来播放 amr 格式 的 录音, 网页代码如下:

以下 部分是 网页中使用 QuickTime 的 标记语言 

<html>
<head>
<script language="JavaScript" type="text/javascript">
function pv_q(u, w, h){
var pv='';
pv += '<object width="'+w+'" height="'+h+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
pv += '<param name="src" value="'+u+'">';
pv += '<param name="controller" value="true">';
pv += '<param name="type" value="video/quicktime">';
pv += '<param name="autoplay" value="true">';
pv += '<param name="target" value="myself">';
pv += '<param name="bgcolor" value="black">';
pv += '<param name="pluginspage" value="http://www.apple.com/quicktime/download/index.html">';
pv += '<embed src="'+u+'" width="'+w+'" height="'+h+'" controller="true" align="middle" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/index.html"></embed>';
pv += '</object>';
document.write(pv);
}
</script>
</head>
<body οnlοad="pv_q('1.amr', 200, 30)">
</body>
</html>

//

                 但是要用户安装插件这种方式非常的不友好,如果是大型软件公司的业务系统 部署起来也非常麻烦, 需要在每一台浏览器终端机上安装 QuickTime 插件。

        第三 是 网站端收到 amr 格式的文件后,立即在网站的后台代码里将 amr 格式 的文件转换为 wav 格式的文件。  问题的难点就在这里,我当时查遍了网上的资料,没有哪个现阶段的动态网站开发语言有源码直接将 amr 格式 转换为 wav 格式。   后来 查阅了 许多 资料,找到了一个 C语言的代码 能 将 amr 格式的 文件转换成 wav 格式


需要这个C源码的童鞋请找我要,我QQ 347287812




最终在 服务端 得到 的 录音文件是下图 这个样子


 希望对大家有所帮助





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值