Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

中文 MMF Controller API

From 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 04:41.
303 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.

×