MTK 6225 平台 audio player 学习笔记
Mtk 6225 上的 audio player 的结构整体上可以分为三层, 最上面的应用程序界面层, 中
间的 audio 播放 api 层, 和底层的编解码库及音频驱动. 其结构图大致如下所示:
由上图可以看出,整个调用层次较深. 我们分别来学习个层.
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(). 整个模块的接口不够清晰, 有些
庞杂和混乱. 模块的显示部分使用控件实现,较为简单, 可进一步参考控件的实现细节