自定义CMdaAudioInputStream的buffer大小

自定义CMdaAudioInputStream的buffer大小

设备, 软件 版本: S60 2nd Ed, Feature Pack 2 / S60 2nd Ed, Feature Pack 3 / S60 3rd Edition

详细描述:
对S60 MMF客户端音频程序来说,处理S60设备中输入流时,是否可以自定义buffer的大小。

解决方案:
在S60 MMF架构中缺省的声音I/O数据buffer大小是根据声音硬件和音频编码性能来分配的。使用CMdaAudioInputStream的客户端程序将考虑到下列局限:
但使用PCM16(缺省)格式时:
声音设备返回的input buffer总是320个字节(S60第二版,FP2和FP3)或4096字节(S60第三版)。这也是调用CMdaAudioInputStream::ReadL()所能返回最大数据长度,因此不建议超过此限度大小。

如果传递到客户端ReadL()中的buffer小于该大小,那服务端buffer就会被组成适合大小的块以便传入。如果这样操作后还有剩余,就不会满足这里最大长度大小。例如,当在S60第三版中使用一个

3840字节的buffer大小时,第一个返回的buffer为3840字节,而下一个就是(4096-3840)256字节,然后再这样重复继续。

当使用非PCM格式处理流时:
对一个压缩音频格式,每个返回的input buffer都典型的包括一个音频数据的单独帧。例如,当使用AMR-NB格式时(在MaiscOpenComplete()方法):
iInputStream->SetDataTypeL(KMMFFourCCCodeAMR);
调用后,每次返回buffer将包括14个字节(一个单独的AMR-NB frame in ,5.15 kbit/s)可演绎20ms of audio data;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值