最近看了《j2me开发精解》跟《javaME核心技术与最佳实践》的MMAPI的内容,根据书上的内容把音乐播放器,视频播放器,录音,跟拍照的功能实现了一次,这里写一下对这些实现的心得。
首先我介绍一下MMAPI的内容。其实MMAPI可以分为四部分内容:播放器(Player)、数据源(DataSource)、控制器(Control)还有管理它们的管理器(Manager)。播放器负责处理各种多媒体数据,数据源负责提取数据,控制器负责管理播放器,例如,可以控制声音的大小。概括起来就是从数据源读取数据,然后交给播放器播放,控制器能够控制播放器播放,它们是由管理器管理的。
接着我介绍怎么创建一个简单的播放器(Player)。
通过调用Manager.createPlayer(InputStream stream, String type)可以创建一个播放器的实例。stream是一个指向多媒体文件的输入流,type指定媒体的格式。
还可以调用Manager.createPlayer( String locator)方法创建播放器实例,locator是一个定位符,能够从web服务器读取多媒体文件。
Player有四个状态,它们按顺序分别是unrealized--realized--perfetched--started四个状态,当Player创建的时候处于unrealized状态,在这个状态中,Player还没有获得媒体文件的信息,然后调用Player的realize()方法就能使它过度到realized状态,在此状态中Player已经获得媒体文件的大部分信息,在这个状态中能够调用getControl(Sting tye)方法获得Control的实例,从而对媒体文件的控制(在unrealized状态调用此方法会报错,因为Player还没有获得足够资源),然后调用perfetch()方法进入perfetched状态,书上说在这个状态播放器做好播放的所有准备,我对这个状态还不清楚什么意思,不过不要紧,这个不影响我们程序的编写。最后调用start()播放器就会播放文件了。
现在介绍一下如何播放一个mp3文件。这里我只实现的思想。
首先读mp3文件,例如读取本地文件getResourceAsStream(String path)
然后创建一个Player的实例Manager.createPlayer(InputStream stream, String type)
接着可以进入realezed状态,获得Control的实例控制媒体文件的播放getControl(String type)
最后调用start的方法进行播放start()
这样就能实现一个媒体文件的播放。
播放视频文件
大致内容跟播放mp3一样,但是比mp3文件多了一样就是显示视频。当取得Control对象后,调用Control对象的initDisplayMode(int modle,object arg)方法.这个方法的modle参数有两个选择,一个是VideoControl.USE_GUI_PRIMITIVE另一个是VideoControl.USE_DIRECT_VIDEO,当你modle的参数为VideoControl.USE_GUI_PRIMITIVE的时候,第二个参数org为null,这个方法就会返回一个form的对象,把这个对象添加到Display()对象里面就能够播放视频。当第一个参数为VideoControl.USE_DIRECT_VIDEO的时候,第二个参数为一个实现了Canvas类的实例,然后系统就会自动在这个实例中添加视频播放的功能。
录音功能
1,创建一个Player对象Manager.createPlayer("capture://audio");
2,创建一个Control的实例Manager.createPlayer("capture://audio"),在这个实例里面,设置播放录音的长度,把录到的录音保存的数组里面(创建一个数组对象,调用setRecordStream(byte[])),这样就能在录制完录音后把录音播放出来。还有录音的时候要开启一个新的线程。
3,开始录音,先调用Player的start()方法,再调用Control的startRecord()发法。
拍照功能
1,创建一个Player对象Manager.createPlayer("capture://video")
2,创建一个Control的实例getControl("VideoControl"),通过这个实例可以调用initDisplayMode(int modle,object arg)来获得摄像头所拍到的图片,具体用法跟视频播放相识。
3,调用Control的getSnapShot(String arg)方法,参数可以指定所拍照的格式,长宽,例如encoding=jepg所拍的相片就以jpeg格式存储,这个方法返回的是一个字节数组。将这个数组转换为图片的格式显示出来即可
分享到:
相关推荐
在本文中,我们将深入探讨MMAPI(多媒体应用编程接口)的核心概念、关键组件以及如何在实际项目中应用它们。 1. **核心概念** - **MediaManager**: MMAPI的核心组件,负责管理和控制设备上的多媒体资源。它提供了...
"mmapi-1[1].2-mrel2-spec.zip" 是一个包含了Mobile Media API的中文文档的压缩包,对于理解和开发J2ME多媒体应用来说,是一份极具价值的参考资料。 Mobile Media API(JSR-135)的核心目标是提供一套统一的、跨...
MCI能够直接控制硬件设备,如CD音乐和影碟机,也可以通过底层的MMAPI间接控制MIDI、WAV等设备,甚至提供如AVI/MPEG影片播放器这样的DLL高层接口。 MCI设备主要有两种类型: 1. 简单设备:这类设备无需提供数据文件...
在 J2ME 中,多媒体功能是通过 Mobile Media API(MMAPI)提供的,这允许开发者在移动设备上实现音频、视频和图像的处理与播放。MMAPI 是 J2ME 多媒体应用的核心,提供了丰富的功能来增强用户的交互体验。 一、...
J2ME MMAPI(Mobile Media API)是Java Micro Edition平台中用于开发移动多媒体应用程序的接口。这一API允许开发者在移动设备上实现音频和视频的播放与录制功能,兼容多种媒体格式和传输协议。以下是对MMAPI核心概念...
### J2ME中使用MMAPI开发手机摄像头程序详解 #### 概述 J2ME(Java 2 Platform Micro Edition)是Sun Microsystems为嵌入式和移动设备设计的Java平台。MMAPI(Multimedia API)是J2ME平台的一个扩展,提供了多媒体...
在J2ME应用开发中,利用MMAPI(Mobile Media API)可以实现在手机上开发与摄像头交互的程序,使得用户可以在游戏中或者其他应用程序中捕获和处理摄像头的图像。以下是对MMAPI开发手机摄像头程序的详细说明: 首先,...
Pro Java ME MMAPI Mobile Media API for Java Micro Edition
MMAPI(Multimedia Application Programming Interface)则是更底层的接口,常用于复杂的MIDI和MMIO(Multimedia Input/Output)编程。MCI提供了方便的函数调用来播放波形音频文件,而MMAPI则允许更深入的媒体控制和...
**mmapi:多发性骨髓瘤API** 多发性骨髓瘤(Multiple Myeloma,简称MM)是一种恶性浆细胞病,对于医疗研究和临床治疗具有极高的关注价值。`mmapi` 是一个专为此类疾病服务的数据接口,它为开发者和研究人员提供了...
在J2ME中,移动媒体API(Mobile Media API,MMAPI)是用于在这些设备上处理多媒体内容的核心接口,提供了播放、录制音频和视频的功能。本开发者指导将深入探讨MMAPI的各个方面,帮助开发者充分利用这个强大的工具。 ...
在J2ME(Java 2 Micro Edition)领域,多媒体功能的实现主要依赖于MIDP 2.0(Mobile Information Device Profile)以及可选的Mobile Media API 1.1(MMAPI)。这篇教程旨在帮助初学者理解如何在MIDlets(运行在J2ME...
mes Java原始码Apress源代码 该存储库由Vikram Goyal陪同(Apress,2006年)。 使用绿色按钮将文件下载为zip格式,或使用Git将存储库克隆到您的计算机上。 发行版 版本v1.0对应于已出版书籍中的代码,没有更正或更新...
- JSR-135 (MMAPI) 2. **Java平台2 (JP2)** - 特性: - MIDP 2.0 - CLDC 1.1 - JSR-185 - JSR-120 (WMA) - JSR-135 (MMAPI) - Nokia UI API 1.1 3. **Java平台3 (JP3)** - 特性: - MIDP 2.0 - CLDC ...
7. **MMAPI 支持**:`microedition.media.version`,如果设备支持Mobile Media API(MMAPI),则返回其版本。MMAPI允许MIDlets进行多媒体处理,如播放音频和视频。 8. **WMA 支持**:`wireless.messaging.sms.smsc`...
Test1---http连接 Test2---Socket连接 Test3---DatagramSocket连接 Test4---MMAPI Test5---多客户端服务器 Test6---MMAPI2 Test7---WMAServer
Sun为J2ME提供了扩展包MIDP(Mobile Information Device Profile)进行无线移动设备应用程序的开发,并提供了可选包MMAPI以满足在小型无线设备上处理多媒体信息的需求,这为本文实现流媒体播放终端提供了技术保障。...
- MMAPI应用:MMAPI用于处理多媒体数据,如音频录制和播放。在蓝牙通信中,可以利用MMAPI将录制的语音数据通过RFCOMM通道发送到远程设备,或者接收并播放来自远程设备的语音。 在代码中,`StreamConnection`是用于...