资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> JSP编程 >> J2ME >> 文档正文
最近更新
普通文档 移动开发:J2ME中定点库
普通文档 MIDlet生命周期的深入理
普通文档 移动开发:RMS概念解析与
普通文档 在基于MIDP的应用程序上
普通文档 教您如何在MIDP开发中实
普通文档 开发经验谈:贪吃蛇游戏
普通文档 J2ME学习系列之如何将J2
普通文档 教您如何解决J2ME开发中
普通文档 用实例讲解一个定制计数
普通文档 熟练使用J2ME在实际开发
推荐文章
  • 此栏目下没有推荐文档
  • 了解J2ME在实际开发中的可选包MMAPI

    文章作者:佚名 录入时间:2006-7-5 来源:不详
    网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。


    在MIDP1.0(JSR 37)并没有提供对声音和视频处理的支持,因此有些厂商就独立开发了API来弥补这样的不足。在MIDP2.0中(JSR 118)中提供了对多媒体处理的支持,但是它只是Mobile Media API(JSR 135)的一个子集。本文将主要对MMAPI做整体介绍。

    首先我们关注一下MMAPI的特性。

    支持单音,重复播放和记录基于时间的多媒体文件

    以CLDC为目标

    设计小巧,目的为了节省资源

    MMAPI并非针对任何内容类型和协议

    可以只实现MMAPI的子集,这就是为什么MIDP2.0中能够只实现其子集的原因

    扩展性强,MMAPI在不修改原来的功能的情况下可以添加新的功能

    选择性实现,实现者可以只实现部分功能

    通常在多媒体的处理过程中有两个重要的环节,一是处理数据传输的协议另一个是处理媒体的数据类型。在MMAPI中提供了DataSource和Player来完成这两步重要的内容。DataSource对数据传输协议进行封装不管它是从哪里过来的,可以是流、文件或者服务器资源等等。Player则负责解码工作,并传输给外设比如显示屏和扬声器,MMAPI的入口点是Manager类,通过它我们可以得到Player的实例。请看下图:



    通过如下方法我们可以得到一个Player的实例:

    public static Player
    
    createPlayer(String locator)
    
    throws IOException, 
    
    MediaException
    
    public static Player 
    
    createPlayer(DataSource source)
    
    throws IOException,
    
    MediaException
    
    public static Player 
    
    createPlayer(InputStream stream, String type)
    
    throws IOException, 
    
    MediaException


    当创建一个Player的时候,它处于UNREALIZED的状态,当Player已经定位了它目标数据后就进入了REALIZED状态,接下来Player对数据进行缓冲这样可以确保播放的流畅,这个状态叫做PREFETCHED。当Player开始播放数据的时候是STARTED状态。Player对数据流提供了基本的控制,通过如下方法可以实现:

    Player.realize()
    
    Player.prefetch()
    
    Player.start()
    
    Player.setMediaTime(long time)


    同时Player也允许对数据流进行详尽的控制,并且针对不同的类型提供不同的控制,通过如下方法我们可以获得Control

    Control[] Player.getControls()
    
    Control Player.getControl
    
    (String controlType)


    MMAPI提供了一些系统属性供查询,我们可以使用方法System.getProperty(String key)得到属性值。关于这些属性值得说明请参考MMAPI DOC。

    supports.mixing 
    
    supports.audio.capture 
    
    supports.video.capture 
    
    supports.recording 
    
    audio.encodings 
    
    video.encodings 
    
    video.snapshot.encodings


    通常我们想知道我们的机器是否支持某些特定的数据类型和传输协议,但是由于MMAPI规范中并没有规定这些,因此我们只能在运行时得到这些数据,可以调用Manager的getSupportedContentTypes()和getSupportedProtocols()。如果Player播放不能解释的数据或者处理不支持的协议的时候会抛出异常。

    总结:MMAPI的设计相当灵活,在使用MMAPI之前,理解他的结构和规范是非常重要的。在后续的文章中我们将讲述如何使用MMAPI并提供具体的实例。

  • 上一篇文档:

  • 下一篇文档:
  •     查找更多“了解J2ME在实际开发中的可选包MMAPI”的内容  
    相关连接
  • 移动开发:J2ME中定点库MathFP使用入门

  • MIDlet生命周期的深入理解及游戏死机问题

  • 移动开发:RMS概念解析与使用指南

  • 在基于MIDP的应用程序上使用JDBC

  • 教您如何在MIDP开发中实现图片放缩