类微信米聊App语聊功能研究

要求: 1. 做到AndroidIphonepc格式通用.

2. 文件大小上尽可能越小越好.

 

1.       为什么微信的android版的语音文件采用amr格式,而iPhone版采用aud格式?

aud格式的全称为Advanced WMA Workshop wma的改进型,WMA在压缩比和音质方面都超过了MP3。所以采用aud是出于音效上的考虑吧。

 

2.       类似产品使用的技术

talkbox  Android版用的是ilbc的第三方编解码库,在iPhone上用的是caf

微信  Android版估计是amr估计转码的是交给腾讯强大的服务器了。

米聊  Android版和Iphone版用的都是speex

: http://www.cnblogs.com/stay/archive/2011/08/19/2145242.html

 

3.       微信android使用的是amr编码;iphone 使用aud转码会在微信服务器上完成。android上使用了speex这个库进行压缩编码。在服务器做格式转换确实比客户端方便多了,用ffmpeg就可以搞定了,也是瘦客户端的一种思路,而且可以依此延伸很多扩展业务。

http://blog.csdn.net/chief1985/article/details/7902016

 

4.       考虑采用的方案

1>     speex需要Androidios都进入转码.

2>     android支持amr,低版本不支持ilbc, ios高版本(4.3)只支持ilbc,不能支持amr

android将语音转ilbc,

 

5.       ios实现amr编解码方案具体做法

录制

1>将语音录成原始pcm

注意这里,虽然录制是pcm码,但出来的文件ios依然会封装一层,将其包装成pcf格式。所以就有了第二步。

2>pcf中的pcm码取出来

使用libopencore库将其编成amr格式,这时可以发送给android端播放了。

播放

1>android版本发送过来的amr解码出来

2>播放原始pcm即可

代码文件都放在github上了,有需要的可以参考一下。 https://github.com/hhuai/ios_util

 

6.     android将语音转ilbc

http://weixueliang89.blog.163.com/blog/static/1979217742012104103029362/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值