×
Namespaces

Variants
Actions

自定义CMdaAudioInputStream的buffer大小

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台: S60 2nd Ed, Feature Pack 2, S60 2nd Ed FP3, S60 3rd Edition
S60 3rd Edition (initial release)
S60 2nd Edition FP3
S60 2nd Edition FP2

文章
huwell 在 27 Jun 2007 创建
最后由 hamishwillee 在 30 May 2013 编辑
  • 详细描述:

对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;

This page was last modified on 30 May 2013, at 07:37.
78 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×