JMF介绍之媒体框架(二)(3)
时间:2011-03-13 51cto博客 zhangjunhd译
4.2处理器(Processors)
处理器(Processors)同样可以用来播放媒体数据。处理器是一种特殊的播放器,它可以对输入媒体流进行过程控制。处理器支持所有播放器拥有的播放控制功能。
除了将媒体数据传送至播放终端外,处理器可以将媒体数据输出至一个数据源(DataSource),此数据源可以作为其它的播放器或处理器的数据源,或是通过其它的处理器对其进行进一步操作控制,或将其传输到一个文件进行存储。
图12为处理器模型
处理器对应的接口是Processor。在JMF API中Processor接口继承了Player接口。
图13 为JMF处理器
如图12 所示,处理器对象除了支持播放器对象支持的所有功能外,还可以对输入的媒体数据流进行处理,并通过数据源向其他的播放器对象或处理器对象输出数据。
4.2.1处理器状态(Processor States)
如图13所示,除了在播放器中提到了的6种状态以外,处理器对象还包括两种新的状态。这两种状态是在Unrealized状态之后,在Realizing 状态之前。
(1)Configuring:当调用configure方法后,处理器对象进入该状态。在该状态下处理器对象连接到数据源并获取输入数据的格式信息。
(2)Configured:当完成数据源连接,获得输入数据格式的信息后,处理器对象就处于Configured状态。
图14为处理器的状态转换图
4.2.2每个状态下控制器对象可执行的方法
Method |
Unrealized Processor |
Configuring Processor |
Configured Processor |
Realized Processor |
addController |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
deallocate |
legal |
legal |
legal |
legal |
getControlPanelComponent |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
getControls |
legal |
legal |
legal |
legal |
getDataOutput |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
getGainControl |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
getOutputContentDescriptor |
NotConfiguredError |
NotConfiguredError |
legal |
legal |
getStartLatency |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
getSupportedContent-
Descriptors |
legal |
legal |
legal |
legal |
getTimeBase |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
getTrackControls |
NotConfiguredError |
NotConfiguredError |
legal |
FormatChange-
Exception |
getVisualComponent |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
mapToTimeBase |
ClockStoppedException |
ClockStoppedException |
ClockStoppedException |
ClockStopped-
Exception |
realize |
legal |
legal |
legal |
legal |
removeController |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
setOutputContentDescriptor |
NotConfiguredError |
NotConfiguredError |
legal |
FormatChange-
Exception |
setMediaTime |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
setRate |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
setStopTime |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
setTimeBase |
NotRealizedError |
NotRealizedError |
NotRealizedError |
legal |
syncStart |
NotPrefetchedError |
NotPrefetchedError |
NotPrefetchedError |
NotPrefetchedError |
|