×
Namespaces

Variants
Actions
Revision as of 07:41, 30 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

中文 MMF Controller API

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

文章
kcomex 在 14 Apr 2007 创建
最后由 hamishwillee 在 30 May 2013 编辑

多媒体框架控制器(MMF Controller)API

多媒体框架(MMF)控制器插件API是由CMMFController接口类实现的。该类是负责接收客户端应用程序调用的RMMFController类的请求,并且将请求分发到更下一层的服务中去。在被创建的时候,CMMFController分配了所有的内部插件生成对象,比如数据源、格式类和编码/解码器等等。

另外,该类还会同声音设备硬件建立一个会话。每一个MMF插件都继承自CMMFController类,并且必须提供该类所有虚函数的实现。

CMMFController类的声明在文件MMFController.h中。

另外一个一个重要的地方就是,对于某些能够对插件的运行状态产生影响的函数,例如PlayL(), PauseL(), and StopL(),他们都有同步和异步两个版本。这种设计的一个好处就是,在控制器内部进行异步操作的同时,可以保持客户端具有一个同步调用的API接口。

例如,播放声音请求可以在播放操作一开始进行就立刻返回,而并不需要完成了整首歌曲的播放才结束。


virtual void CMMFController::PlayL() = 0;
virtual CMMFController::void PlayL(
TMMFMessage& aMessage); //async
virtual void CMMFController::PauseL() = 0;
virtual void CMMFController::PauseL(
TMMFMessage& aMessage); //async
virtual void CMMFController::StopL() = 0;
virtual void CMMFController::StopL(
TMMFMessage& aMessage); //async

通过CustomCommand()处理函数,我们可以向控制器发送定制的命令。在控制器内部,是由一个专门的函数会对控制器定制命令进行处理的。而Symbian也提供了一个默认的定制命令处理器,确保了所有的客户端/服务器消息的处理,即便他们是无法识别的命令请求。

virtual void CMMFController::CustomCommand(
TMMFMessage& aMessage)
{aMessage.Complete(KErrNotSupported);};//default implementation
void CMMFController::AddCustomCommandParserL(
CMMFCustomCommandParserBase& aParser);
This page was last modified on 30 May 2013, at 07:41.
65 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.

×