`
wuhua
  • 浏览: 2111004 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

移动多媒体学习之一

    博客分类:
  • J2ME
阅读更多
    好多项目要开工了。以后会忙个像头牛,在这里学习,交流真是爽。趁着现在有那么点点时间,把今天的学习经验交流下。我想没有比开发多媒体软件更令人兴奋 了。特别是手机多媒体,以前也常常想,该怎么样来查看gif图片了。怎么样看那些mpeg的视频片段了。好了。我开始学习mma了,我想把我学习的经验与 大家交流下。
    这篇文章我只是拿个简单的官方的例子来看写,让我们大家对这个mma有个初步的了解。
 

J2ME中,移动媒体APIMMAPI)是一个可选包,它提供了一个标准的API,可以用来表现和获得以时间为基础的媒体。例如声音轨道和视频片断。MMAPIJava社区进程中以JSR-135开发,并且它被设计成灵活的和平台无关的,它没有对媒体格式、协议或者在未来不同设备支持的特征作任何假设。MMAPI已经在移动设备上使用,例如,Nokia3650就包含了一个实现。其它支持MMAPI的设备可以在“J2ME设备”中找到。<o:p></o:p>

这篇文章将介绍MMAPI的最新发展:MMAPI1.1中提出的新的安全考虑、MMAPIMIDP2.0 Media API之间的不同、J2ME无线工具箱(J2ME Wireless Toolkit)对MMAPI的支持和JSR-234,高级多媒体补充(Advance Multimedia Supplement)。如果你正在寻找一个MMAPI的指南和示例代码,例如为一个音频/视频播放器,请参见“J2ME移动媒体API”和“使用MMAPI拍摄照片”。<o:p></o:p>

MMAPI组件总揽<o:p></o:p>

MMAPI有四个主要的组成部分:<o:p></o:p>

l         Player用来播放内容。它提供了方法,用来管理播放器的生命周期,和不同的重放特征。<o:p></o:p>

l         Manager是媒体的总控制者,它创建播放器。<o:p></o:p>

l         DataSource代表一个协议的控制者,它对应用程序开发者通常是不可见的。这个协议管理者读出媒体并放到播放器中进行播放。<o:p></o:p>

l         Control控制Player和重放操作的不同特征。<o:p></o:p>

MMAPI支持的控制操作<o:p></o:p>

MMAPIjavax.microedition.control包中包含了12种控制操作:<o:p></o:p>

l         MetaDataControl用来从媒体数据中获得元数据信息。<o:p></o:p>

l         MIDIControl提供对播放器表现和传输设备的访问。<o:p></o:p>

l         GUIControl代表一个具有用户界面组件的控制操作。<o:p></o:p>

l         PitchControl升高或降低重放的位置而不改变重放的速度。<o:p></o:p>

l         RateControl控制重放的速率。<o:p></o:p>

l         TempoControl控制MIDI歌曲的节奏。<o:p></o:p>

l         VolumeControl控制音量。<o:p></o:p>

l         VideoControl控制可视内容的显示。<o:p></o:p>

l         FramePositioningControl可以对一个视频帧精确定位。<o:p></o:p>

l         RecordControl记录当前被Player播放的是什么内容。<o:p></o:p>

l         StopTimeControl使应用程序可以为一个Player预先指定一个停止时间。<o:p></o:p>

l         ToneControl是一个可以播放用户自定音调序列的接口。<o:p></o:p>

必须明白,并不是所有的MMAPI实现都支持所有的控制操作类型。你可以通过调用System.getProperty(String key)得到一个设备所支持的控制类型。这个规范定义如下这些属性:<o:p></o:p>

l         microedition.media.version返回一个代表MMAPI实现版本的字符串。如果当前设备支持MMAPI,返回“<st1:chmetcnv unitname="”" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1.0</st1:chmetcnv>或者“<st1:chmetcnv unitname="”" sourcevalue="1.1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1.1</st1:chmetcnv>,反之,则返回“null”。<o:p></o:p>

l         supports.mixing如果支持混频则返回true,否则返回false<o:p></o:p>

l         supports.audio.capture如果支持音频记录就返回true,否则返回false<o:p></o:p>

l         supports.video.capture如果支持视频记录就返回true,否则返回false

l         supports.recording如果支持录制就返回true,否则返回false

l         audio.encodings返回一个代表所支持的音频格式的字符串,如果不支持音频内容则返回“null”。

l         video.encodings返回一个代表所支持的视频格式的字符串,如果不支持视频内容则返回“null”。

l         video.snapshot.encodings返回一个代表所支持的图像格式的字符串,如果不支持视频快照则返回“null”。

l         streamable.contents返回一个代表所支持的流媒体内容类型的字符串,以MIME语法。

除了被System.getProperty()支持的属性外,Manager类还提供了几个有用的静态方法:

l         String[] getSupportedContentTypes(String protocol)传入一个协议如“http”作为参数,返回这个协议所支持的内容类型。

l         String[] getSupportedProtocols(String contentType)传入一个以MIME语法的内容类型如“video/mpeg”,返回可以用来传递这种类型的协议。

MMAPI1.1<o:p></o:p>

MMAPI1.1MMAPI1.0的延续和更新。它主要修改了文档问题,增加了一些新的定义,并且修订了和MIDP2.0安全框架相关联的文档。它没有对类、接口以及方法定义做任何修改。

MMAPI没有定义它自己的安全框架,但是MMAPI实现从属于潜在的ProfileConfiguration所提供的安全框架。如果调用者缺乏合适的安全许可,一些MMAPI方法被定义抛出一个SecurityException。因此,一个MMAPI实现必须保证:

l         当调用者没有合适的权限而执行MMAPI实现中的方法时,要抛出SecurityException

l         当被授予合适的权限后,其中的方法可能会用到。

MMAPI的安全问题涉及到录制、网络访问和本地数据存储访问。录制关系到用户的私有权;应用程序可能默默的访问录制功能,录制和分发私人会话。另外,安全实践必须可以在适当的位置访问远程和本地资源。为了获得访问录制功能、网络和本地数据存储的权限,一个MMAPI实现必须获得实现制定的合适的权限。

MMAPIJ2ME无线工具箱2.2<o:p></o:p>

J2ME无线工具2.2版本实现JSR-135。随这个工具箱一起发布的有一个模拟器皮肤,MediaControlSkin,它主要用于在多媒体的播放和控制。这个模拟器的MMAPI实现支持一下媒体类型。

MIME类型

描述

audio/midi

MIDI文件

audio/sp-midi

可升级的多音MIDI

audio/x-tone-seq

MIDP2.0音调序列

audio/x-wav

WAV PCM取样音频

image/gif

FIG<st1:chmetcnv unitname="a" sourcevalue="89" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">89a</st1:chmetcnv>(活动的GIF

video/mpeg

MPEG视频

video/vnd.sun.rgb565

视频记录

MMAPI MIDlets<o:p></o:p>

随工具箱发布的还有一些MMAPIdemo。一个特别用户的demoPausing Audio Test,它是mmademo工程的一部分。它展示了一个良好开发的MMAPI MIDlet应该如何运转。例如,你必须清楚MIDlets可能会被一些事件中止,如一个来电,如图1所示。当你的MIDlets中止时,它们应该释放比较重要的设备资源,当MIDlet恢复时,再重新分配或启动那些资源。当一个MIDlet中止时,任何播放器都应该停止,如果William Tell Overture穿过一个重要的商务电话一直播放,你的用户并不会感谢你。

<v:shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" id="_x0000_t75"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><o:p></o:p>

1<o:p></o:p>

MMAPIMIDP2.0 Media API的比较<o:p></o:p>

MIDP2.0媒体APIMMAPI一个直系的子集,打算提供给那些资源有限运行MIDP2.0的设备,尽管同样的子集可能被其他需要声音支持的J2ME Profile采用。这个API实现了MIDP专家组制定的要求,包括:

l         简易音频播放

l         不依赖于任何特定的协议和内容格式

l         支持自定音调

l         支持普通的媒体流控制,如开始、停止、查找等

l         支持媒体类型特定的控制,如声音

l         支持容量查询

因为这些要求,MIDP2.0 Media APIMMAPI有以下不同:

l         如果仅仅是视频,它不包含视频或图像特定的控制操作。

l         不支持多个播放器同时使用一个普通时间基同步播放。

l         不支持通过自定义DataSource的方式自定义协议,不包含javax.microedition.media.protocol包。

l         使用Manager的一个简化版本。

MMAPI和高级多媒体补充(Advanced Multimedia Supplements)的比较<o:p></o:p>

JSR-135引入了音频和视频的基础的播放功能。JSR-234,高级多媒体补充,将会通过为高级多媒体功能定义一个可选包支持最近的硬件更新。在J2ME/CLDC环境中,新的API依赖和增加了MMAPI的特征。提供这个可选包的主要目的是为了更好的支持照相机和收音机,也为了高级音频处理。在规范中描述的一些能力有:

l         支持特定的照相机控制,如亮度对比、闪光、灯光模式和镜头变焦。

l         正确的访问收音机和其他基于频道和频率的媒体源,包括无线电数据系统。

l         高级的音频处理能力,如均衡器和音频效果。

l         媒体输出方式指定,用来选择音频是通过喇叭播放还是通过耳机播放。

总结<o:p></o:p>

MMAPI可选包为运行在MIDP设备上的应用程序,提供了一些宜人的功能,在以前这些功能并不可用。它的可扩展架构为以后在移动设备上提供更多的功能创造了机会。这篇文章描述了MMAPI的主要组成部分,讨论了在1.1版本中的变化,并且解释了MMAPIMIDP2.0 Media API和高级多媒体补充(Advanced Multimedia Supplements)之间的关系。如果你想将MMAPI运用在实际中,请下载J2ME无线工具箱2.2,然后研究mmademoAudiodemo工程。

上面的这个文章是j2medev里面的一个高手翻译的。看了基本上是有个了解了。

下面也让我们看下一个例子代码,也是出自j2medev。
java 代码
  1. public class GifPlayer extends MIDlet {  
  2.      
  3.     private Display display = null;  
  4.     private Player player = null;  
  5.      
  6.     public void startApp() {  
  7.         if(display == null)  
  8.             display = Display.getDisplay(this);  
  9.         Form form = new Form("gif player");  
  10.         InputStream is = getClass().getResourceAsStream("/a.gif");  
  11.         createPlayer(is);  
  12.         if(player == null){  
  13.             form.append("can not play image/gif");  
  14.         }else{  
  15.             VideoControl vc = (VideoControl)player.getControl("VideoControl");  
  16.             if(vc != null){  
  17.                // form.append((Item)vc.initDisplayMode(
  18. VideoControl.USE_GUI_PRIMITIVE,null));  
  19.             }  
  20.         }  
  21.         display.setCurrent(form);  
  22.         try {  
  23.             form.append(Image.createImage("/a.gif"));  
  24.         } catch (IOException e) {  
  25.             // TODO 自动生成 catch 块  
  26.             e.printStackTrace();  
  27.         }  
  28.         try {       player.realize();
    &
  • 大小: 3.8 KB
分享到:
评论
4 楼 wuhua 2007-02-27  
有时间再补上去吧
3 楼 avampire 2007-02-27  
续贴罗 仿佛不全
2 楼 wuhua 2007-02-26  
这篇文章怎么不全呢。
我写的时候不止这么少的哦。
是不是javaeye有字数的限制啊。
郁闷
1 楼 linginfanta 2007-02-25  
学习一哈

相关推荐

    移动学习平台

    本项目主要关注的是Android平台上的移动学习应用开发,其中包含了一个名为"GPlayer"的源码库,这通常是一个视频播放器组件,对于构建支持多媒体学习功能的移动应用至关重要。 1. **移动学习平台**:移动学习平台的...

    IMS 移动领域的IP多媒体服务

    IP多媒体子系统(IP Multimedia Subsystem,简称IMS)作为下一代网络(NGN)的核心组件之一,为移动通信领域带来了全新的服务模式和技术体系。本文将围绕IMS的基本概念、系统架构以及相关的网络协议进行全面而深入的...

    行业分类-设备装置-用于数字视频广播的移动多媒体终端.zip

    标题中的“行业分类-设备装置-用于数字视频广播的移动多媒体终端”暗示了我们要探讨的是一个与信息技术(IT)行业相关的设备,特别是涉及到数字视频广播(DVB)和移动多媒体应用的终端设备。这种设备通常是指能够...

    从远程学习到电子学习再到移动学习.pdf

    电子学习是指利用计算机、网络和多媒体技术来实现的学习方式。电子学习的发展离不开信息技术的进步,特别是互联网和移动设备的普及。电子学习具有灵活性强、互动性强、可重复性强等特点,使得学习者可以根据自己的...

    中国移动PPT学习教案.pptx

    企业文化是中国移动成功的关键因素之一。公司的核心价值观“正德厚生,臻于至善”体现了中国移动对社会责任的承诺和追求卓越的精神。企业使命是“创无限通信世界,做信息社会栋梁”,强调其在推动信息社会发展中的...

    基于Android的园林植物及应用课程移动学习平台的开发与设计.pdf

    Android 客户端应用开发是移动学习平台的关键组件之一。基于 Android 的移动学习平台可以满足学生对移动学习的需求,提高学生的学习兴趣和学习效果。Android 系统作为一种开源的操作系统,具有良好的可扩展性和开发...

    人工智能-机器学习-手机移动学习资源内容设计研究.pdf

    《人工智能-机器学习-手机移动学习资源内容设计研究》这篇文档主要探讨了在当前科技飞速发展的背景下,如何利用手机移动学习这一新兴的学习方式来优化教育资源设计,特别是针对大学英语课程。文章首先介绍了移动学习...

    行业分类-设备装置-多媒体移动教室的白板结构.zip

    白板作为多媒体移动教室中的核心设备之一,其结构设计直接影响到教学效果。现代多媒体白板通常具备以下特性: 1. 触控功能:白板支持触控操作,教师和学生可以直接用手或特制笔在白板上书写、绘图,如同使用传统的...

    大学生英语移动学习情况调查研究.docx

    同时,开发更丰富、更符合学习者需求的多媒体学习资源,增强互动性和趣味性,以提高学生的学习兴趣和效果。此外,探索更有效的个性化学习策略和评估机制,以确保移动学习在提高英语技能方面发挥更大作用。

    移动学习影响着我们的未来考试100分.doc

    11. 移动学习的发展趋势:包括基于学习地点的资源整合、网络课程管理和学校中的云端技术,带出课堂的移动设备也是趋势之一。 12. 移动学习的理论基础:包括教学系统设计理论、构建主义学习理论和人本主义学习理论,...

    多媒体信息检索研究

    随着互联网和移动通信技术的发展,多媒体信息检索已经成为信息系统和数字图书馆研究的核心内容之一。下面详细说明文档中提到的相关知识点。 首先,文档提到了多媒体信息检索研究的几个关键点,包括图像检索、视频...

    Linux多媒体网络教学软件应用示范推介会在京召开.pdf

    此外,移动学习也是未来远程教育的重要形式之一,它不仅具备远程教育的基本特征,如师生分离、技术媒体运用等,更增添了学习者自由度的提升,允许他们在任何地方进行个性化、多样的学习活动。随着移动通信技术的进步...

    基于云计算的高职院校移动学习平台设计.pdf

    云计算技术之所以在移动学习平台中得到广泛应用,是因为其拥有处理大规模数据的能力,并且能够在不同终端设备上提供一致的用户体验。由于云计算的存储和计算功能被放置在云服务器上,用户无需在本地设备上进行复杂的...

    Java程序设计移动学习平台的设计与实现分析.pdf

    移动学习平台的核心设计理念之一就是充分利用和发挥4G通信技术的优势。4G移动通信技术相较于之前的3G技术,具有更高的数据传输速率和更优的网络质量,支持高清晰度视频通话、流媒体等服务,能有效保障移动学习时的...

    基于云服务的移动学习应用多维评价体系研究.pdf

    技术是保证应用质量的关键因素之一。 移动应用主要分为原生应用(native app)和Web应用(webapp)两种形式。原生应用是通过特定开发技术如ObjectiveC、Java等开发的移动学习程序,安装到移动端设备中。原生应用运行...

    龚声蓉 编著 《多媒体技术应用》 课件

    8. 移动多媒体:随着移动设备的发展,多媒体在智能手机和平板电脑上的应用也日益广泛,如移动学习、移动娱乐等。 通过《多媒体技术应用》的电子课件,学生不仅可以学习到理论知识,还能通过丰富的实例和互动练习,...

    IMS:移动领域的IP多媒体概念和服务

    因此,对IMS的理解和应用是现代通信技术人员必备的技能之一。 总之,IMS是移动通信领域的一个核心组成部分,它提供了强大的多媒体服务能力和灵活的网络扩展性,对于理解现代通信网络的运作机制以及开发新的通信服务...

    多媒体通信技术基础(第二版)蔡安妮 课后习题答案

    多媒体通信技术是现代信息技术的基石之一,它涵盖了音频、视频、图像等多种媒体的数据处理和传输。本教材的第二版可能更新了部分内容,以适应快速发展的通信技术和理论。蔡安妮教授作为该领域的专家,其著作通常严谨...

    联邦学习在多媒体数据挖掘中的应用.pptx

    多媒体数据的这些特性使其成为联邦学习的理想应用场景之一。 #### 二、联邦学习在多媒体内容分析中的应用 ##### 图像分析: 1. **分布式图像数据集上的联合训练**:联邦学习允许不同来源的图像数据在不被集中存储...

    互联网+环境下的移动学习技术辅助语文教学新思考.docx

    2. **感知语言,培养语感**:语感是学习语言的重要基础之一。移动学习技术可以帮助学生通过听读、观看等方式感知语言的魅力,进而培养良好的语感。例如,通过语音识别软件进行朗读练习,不仅可以纠正发音,还能加深...

Global site tag (gtag.js) - Google Analytics