您的位置:软件 > 开发者网络 > 开发工具 > 移动开发 > 正文
Mobile Media API概述
[文章信息]
作者:than Knudsen
时间:2002-07-15
出处:天极论坛
责任编辑:
[文章导读]
Mobile Media API (MMAPI)为多媒体开发提供了一个强大,可扩充以及简单的接口......
advertisement
热点推荐
· 专业设计的魅力:精确的定位
· 在金山文字中输入文字
· 认识磁盘
· 小小的精彩Flash:广告作品
· 小小的精彩Flash:过关斩将II
[正文]
  Mobile Media API (MMAPI)为多媒体开发提供了一个强大,可扩充以及简单的接口。它有一套规范的播放和录制audio或video的接口。这篇文章是MMAPI概念的一个概观以及其类和接口使用的一个快速教程。

  Mobile Media API的体系结构

  MMAPI基于四个基本概念:

  1. 一个player知道如何去解释媒体数据。举个例子,某种类型的player知道如何根据mp3媒体数据产生声音。另外一个player知道如何播放一端QuickTime的movie。javax.microedition.media.Player接口的实现(implement)既是这里说的player。

  2. 你能用一个或多个controls来调整player的行为。你可以在player从媒体转换数据的时候从一个player实例取得并且使用controls。比如,你能用一个VolumeControl来调节一个采样音频的声音大小。

  Controls是javax.microedition.media.Control接口的实现。详细的Control子接口在javax.microedition.media.control包中

  3. 一个data source知道如何从它的原始位置读取到媒体数据给player。媒体数据可以被保存在不同的位置,从远程服务器到 资源文件或者RMS数据库。媒体数据可以从原始位置通过HTTP,像RTP一样的流式传输协议,或者其他机制传输到player。

  javax.microedition.media.protocol.DataSource是MMAPI中所有data source类的抽象父类。

  4. 最后,manager把每一个部件捆绑起来,并且为API提供了切入点。

  javax.microedition.media.Manager 类包含了得到Player或DataSource的静态方法。

  使用MMAPI

  你能使用Manager做到的最简单的事情是用下面的方法播放一段乐音(tone):

  public static void playTone(int note,
  int duration, int volume) throws MediaException

  播放时间按毫秒定义好,音量范围则从0(无声)到100(最大声)。音符用一个数字定义,像MIDI一样,60代表中音C调,69则是一个440赫兹的A调。音符的范围可以从0到127。playTone()方法适合播放一个单一的音调或是很短的模进音。

  更长的单声道模进音,你可以用默认的乐音播放器,它可以播放一全部模进乐音。

  MMAPI最迷人的的地方体现在Manager的createPlayer方法上,该方法有如下三个不同的版本:

  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最简单的方法是使用第一个createPlayer方法,仅仅传递一个代表媒体数据的字符串就可以了。

  举个例子,你可以指定一个网站上的音频文件:
  Player p = Manager.createPlayer("http://webserver/music.mp3");

  其他createPlayer方法允许你从一个DataSource或一个InputStream流创建Player。如果你考虑使用Player, 这三个方法是真正的三种不同的方式取得media数据。一个InputStream是个最简单的对象,仅仅是一个字节流。而DataSource就更高级了点,是一个选择协议去访问媒体数据的对象。传递一个位置字符串是个最好的捷径:MMAPI会搞清楚用何种协议并为player取得媒体数据。

  如何使用Player

  一旦你成功建立了一个Player对象,下一步该做些什么呢?最简单的行动就是开始用start方法重放。然而,只是为了学到比入门更深层次的东西,这有利于帮助理解一个Player的生命周期。这个周期由四个状态组成。

  当一个Player第一次被建立,它的状态是UNREALIZED。在为这个Player设置了媒体数据的位置以后,它的状态是REALIZED。

  如果Player正在从一个服务器的HTTP连接下载并解释数据的时候,比如Player在Http请求已经发送到服务器,收到HTTP响应后,而且DataSource准备好接收audio数据的时候。下一个状态是PREFETCHED,获得该状态的时机是该player已经读到足够的数据而开始解释和运算了。最后,当数据在运算完毕后,Player的状态变成了STARTED.

  Player接口提供了状态转换的方法,在状态循环中,无论前进还是后退都有描述。其原因是为了提供给应用程序一个可操作控制。

  控制可能会占用一段时间。举个例子,你可能要将Player的REALIZED状态推到PREFETCHED状态,为了一段声音可以马上播放,以响应用户的操作。

  在java Platform的MMAPI

  MMAPI在在java 2 platform中适用于什么样的情况呢?答案是几乎任何地方。尽管当初MMAPI的设计仅仅是基于CLDC,但它可以在 CLDC和CDC软件上都可以运行得很好。事实上,MMAPI可以作为轻量选择用j2se实现到java media Framework。

  可以支持那些类型的Media文件?

  如果你的装置支持MMAPI的话,那么这个装置可以播放什么类型的媒体数据呢?支持什么数据传输协议?

  MMAPI并不要求任何指定

  的content type或协议,但你能在运行时找出程序支持什么类型的数据,通过调用Manager类的getSupportedContentTypes()

  方法和getSupportedProtocols()方法。

  可能发生的最糟糕的事情是什么呢?如果你通过Manager给Player一种不支持的数据类型或协议,它会抛出个exception。

  你的程序应该试图去从这样的例外中恢复过来,可以显示些礼貌的信息提示给用户。

  MIDP 2.0的媒体

  MIDP 2.0规范包括了一个MMAPI的子集。它向上兼容所有API。MIDP 2.0子集有如下特性:

  1. 只支持音频回放(录制)。不包含video控制接口。
  2. 多Player不能被同步
  3. DataSource类和javax.microedition.media.protocol包的其他类没有被包括进来;
  应用程序不能实现他们自己的协议。
  4. Manager类是被简化的。
  MIDP要求支持乐音产生和采样,WAV音频播放。

  总结

  MMAPI为从java应用在移动设备行运行使用多媒体提供了一套简洁的,可扩充的和规范的API。


·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • [配置推荐]4100元高性价比配置
  • 软件频道电脑应用多媒体教程
  • 专业设计的魅力:精确的定位
  • 在金山文字中输入文字
  • 认识磁盘
  • 小小的精彩Flash:广告作品
  • 小小的精彩Flash:过关斩将II
  • 11.19精选 闪客五周年作品展
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索