在MMAPI包中类还是很多的,但是刚开始学习最关键的就是理解Manager和Player 以及Control类;其他的很多类(后面包含Control的)都是Control子类的。
这三类常用的关系的就是Manager产生Player,Player获得某一具体Control。比如下面的就是获取摄像头的常用源码:
Player p;
VideoControl vc;
p = Manager.createPlayer("capture://video");
p.realize();
vc = (VideoControl) p.getControl("VideoControl");
学习Manager类: 此类就是管理多媒体数据来源,并依照来源创建Player类
键掌握几个概念: Data Delivery Protocol;Content Types;Media Locator;Media Encoding Strings
Data Delivery Protocol 中文意思就是数据传送协议, 其实也就是指多媒体数据的来源,用来区分多媒体数据到底是从硬盘上读取的还是从网上下载的还是通过捕获手机上视频或者话筒获取的等数据来源。
Content Types 中文意思就是多媒体数据的内容类型,用来区别数据的类型以及数据格式,比如:audio/mpeg指MP3格式的声音数据;video/mpeg 指MPEG格式的视频数据。
Media Locator:中文意思就是多媒体数据实体,就是明确指定多媒体数据的来源位置,这个就是Manager类用来创建Player类的实际用到的,比如上面的“capture://video"; ://前面的就表示使用的数据传送协议。
Media Encoding Strings:中文意思是多媒体数据编码串;这个没看大明白,也没搞清具体怎么用;大概意思就是将获得的数据以(或者是以)编码串指定的格式编码输出。
学习Player类: 此类就是播放多媒体数据并控制其状态
关键点:Player类很简单 关键就是掌握类的5种状态 另外一个是事件触发处理(这个通过使用PlayerListener类来实现)
学习Control类:此类实际上只是空类,关键是它的子孙太多了,哈哈,它的子类就是指对播放进行某一方面的控制
实际上这个应该是一个集群,大概的意思知道了学起来也方便,比如VolumeControl类 就是控制播放音量的。要用具体的控制类时再看看怎么用就可以了,都不是很难。
MMAPI包主要就是这三种,或叫三层吧。第一层Manager管理数据源,第二层Player播放数据,第三层Control类集控制播放属性。 还有其他几个类:ContentDescriptor DataSource SourceStream TimeBase等 都不是常用的,由于时间紧迫也没仔细去看 要用的时候再了解 也不是很难的 容易掌握