MTK 音频播放器的实现

本文详细介绍了MTK 6225音频播放器的三层结构:应用程序界面层、音频播放API层和编解码库及音频驱动层。重点讨论了MMI Task层的回调函数处理事件的方式,Media Task层的消息处理流程,以及L1Audio模块中针对不同音频格式的处理接口。此外,还探讨了MTK任务(task)和模块(mod)的划分以及它们之间的通信机制。
摘要由CSDN通过智能技术生成

Mtk 6225上的audio player 的结构整体上可以分为三层, 最上面的应用程序界面层, 中间的audio 播放api层, 和底层的编解码库及音频驱动. 其结构图大致如下所示:

MTK <wbr>音频播放器的实现


由上图可以看出,整个调用层次较深. 我们分别来学习个层.
 
1: MMI Task 层
   在该层 audio player 模块实现了播放器程序, 其中主要包括对界面视图的实现, 界
面逻辑的处理以及调用MID模块的接口,实现音频操作. 在学习其具体的实现细节上,
可以按view 和 model+control的简化MVC模式来看, 包含与显示有关的screen操作显
示部分, 处理消息的msghandler部分以及主的程序逻辑及按键处理部分. MTK平台对事
件的处理是通过callback function方式, 所以程序的流程不是顺序的, 事件的发生将导
致相应的callback被调用, 从而触发整个audio player的一次响应. 需要注意的是,在每个
不同的界面对相同事件的处理callback函数可能有所不同, 这是在创建,进入该界面时
设定的.  该模块的接口比较复杂,为了提供对BT的统一接口, 有两层的播放接口,如
mmi_audply_play 和 mmi_audply_do_play_action(). 整个模块的接口不够清晰, 有些
庞杂和混乱. 模块的显示部分使用控件实现,较为简单, 可进一步参考控件的实现细节
以了解平台的显示子系统, 对播放文件列表的管理是通过文件操作实现的,具体可参见
audioplayerplaylist部分.
MDI层和Media接口层,这两个部分可看作一个整体, 是MMI层对媒体操作的封装.
它包括了多个部分的接口,在此我们只看audio接口部分,其他模块如video,fm的接口类
似. Audio接口包括了播放,暂停,停止,获取播放时间,获取播放频谱等. 这些接口基本
上都是按同步处理方式实现的. 比如播放接口:
   MDI层接口是
mdi_result mdi_audio_play_file(void *file_name, U8 play_

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值