近日工作中,要在j2me polish项目里实现mmapi, 其中的视频的实现在j2me polish与一般j2me项目里是不同的,弄了一天都不能播放。后来在网上问了一个高手才知道,下面我们看看Video Play 在polish中的实现:
j2me里实现mmapi的基本解释我不多说了,不了解的可以参考
http://hi.baidu.com/cobalt/blog/item/fdb457c25e4c0237e4dd3b71.html 里边讲得很详细的,我们主要看看实现mmapi video的播放的代码:
java 代码:
try {
InputStream is = getClass().getResourceAsStream("/3.mpg");
Player p = Manager.createPlayer(is, "video/mpeg");
p.realize();
// Grab the video control and set it to the current display.
VideoControl vc = (VideoControl)p.getControl("VideoControl");
if (vc != null) {
Form form = new Form("Video form");
form.append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null));
display.setCurrent(form);
}
p.start();
} catch (IOException ioe) {
} catch (MediaException me) { }
当我在j2me polish工程中按这样实现的时候,老是出现下边的异常:
Generic/DefaultColorPhone: startApp threw an Exception
Generic/DefaultColorPhone: java.lang.ClassCastException
Generic/DefaultColorPhone: java.lang.ClassCastException
Generic/DefaultColorPhone: at com.protel.MM.UI.MMMidlet.startApp(+224)
Generic/DefaultColorPhone: [javac] C:\Documents and Settings\winxp\Desktop\mmapi\source\src\com\protel\MM\UI\MMMidlet.java:57: form.append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null));
Generic/DefaultColorPhone: at javax.microedition.midlet.MIDletProxy.startApp(+7)
Generic/DefaultColorPhone: at com.sun.midp.midlet.Scheduler.schedule(+270)
Generic/DefaultColorPhone: at com.sun.midp.main.Main.runLocalClass(+28)
Generic/DefaultColorPhone: at com.sun.midp.main.Main.main(+116)
原来在j2me polish应用中所有的Screen或Item都经过preproceses(预处理),故所有新创建或返回的Screen/Item都默认是de.enough.polish.ui.*里边的,
所以直接调用上边的代码时会发生类型转换异常。所以要在j2me polish项目中正常播放video要直接引用javax.microedition.lcdui.*
的类,修改后的代码如下:
try {
System.out.println("~~~~~~~~~~"+getClass().getResourceAsStream("/3.mpg"));
InputStream is = getClass().getResourceAsStream("/3.mpg");
Player p = Manager.createPlayer(is, "video/mpeg");
p.realize();
// Grab the video control and set it to the current display.
VideoControl vc = (VideoControl)p.getControl("VideoControl");
if (vc != null) {
javax.microedition.lcdui.Form form = new javax.microedition.lcdui.Form("Video form");
javax.microedition.lcdui.Item videoItem = (javax.microedition.lcdui.Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null);
form.append(videoItem);
display.setCurrent(form);
}
p.start();
} catch (IOException ioe) {
} catch (MediaException me) { }
分享到:
相关推荐
在 J2ME 中,多媒体功能是通过 Mobile Media API(MMAPI)提供的,这允许开发者在移动设备上实现音频、视频和图像的处理与播放。MMAPI 是 J2ME 多媒体应用的核心,提供了丰富的功能来增强用户的交互体验。 一、...
J2ME MMAPI(Mobile Media API)是Java Micro Edition平台中用于开发移动多媒体应用程序的接口。这一API允许开发者在移动设备上实现音频和视频的播放与录制功能,兼容多种媒体格式和传输协议。以下是对MMAPI核心概念...
本文将详细介绍如何在J2ME中利用MMAPI来开发手机摄像头程序。 #### 开发环境与工具 为了确保能够顺利进行开发工作,首先需要搭建一个合适的开发环境。这通常包括安装Java开发工具包(JDK)、集成开发环境(IDE),...
- **新兴技术**:介绍与J2ME相关的新兴技术趋势,如物联网(IoT)中的应用、嵌入式系统的开发等。 #### 八、版权与分发 - **版权声明**:J2ME中文教程是由J2ME开发网的网友集体创作,受版权法保护。 - **使用规定**...
J2ME提供了在这些小型设备上运行应用程序的能力,使其成为开发移动应用程序的常用工具。本教程PPT旨在帮助初级J2ME开发者理解其核心概念和技术。 **J2ME架构** J2ME的架构主要由两部分组成:配置(Configurations...
手机跳舞机项目作为一个简单的应用实例,可以帮助初学者理解如何在J2ME环境中构建互动性游戏。通过这个项目,开发者可以学习到如何处理用户输入、播放音频、显示图形以及实现基本的游戏逻辑。 【J2ME关键知识点】:...
在J2ME(Java 2 Micro Edition)开发中,与手机系统的交互是非常常见的,而这一交互的核心在于理解和使用J2ME Property属性表。这些属性提供了关于设备硬件、软件配置以及功能支持的重要信息,使得开发者能够根据...
在本文中,我们将深入探讨MMAPI(多媒体应用编程接口)的核心概念、关键组件以及如何在实际项目中应用它们。 1. **核心概念** - **MediaManager**: MMAPI的核心组件,负责管理和控制设备上的多媒体资源。它提供了...
在Java 2 Micro Edition (J2ME)环境中,开发移动应用时可能会涉及到播放声音的需求。J2ME 提供了 Mobile Media API (MMAPI) 来处理多媒体内容,包括音频。MMAPI 是MIDP (Mobile Information Device Profile) 1.0 的...
在J2ME的众多功能模块中,Mobile Media API(JSR-135)扮演着至关重要的角色,它为开发移动设备上的多媒体应用提供了丰富的接口和支持。"mmapi-1[1].2-mrel2-spec.zip" 是一个包含了Mobile Media API的中文文档的...
XML作为一种数据交换格式,在互联网和不同系统间的数据传输中广泛应用。J2ME XML API虽然相对简化的,但仍能支持基本的解析、创建和操作XML文档,这对于需要交换结构化数据的应用来说非常有用。 接下来,MIDP...
- 在Java 2之后,根据不同的特性和应用场景,Java被划分为三个主要版本:J2EE(面向企业应用)、J2SE(面向桌面应用)和J2ME(面向嵌入式和移动设备)。 - 在Java 2之前,用于嵌入式系统的Java出现了许多不同的...
在J2ME中,移动媒体API(Mobile Media API,MMAPI)是用于在这些设备上处理多媒体内容的核心接口,提供了播放、录制音频和视频的功能。本开发者指导将深入探讨MMAPI的各个方面,帮助开发者充分利用这个强大的工具。 ...
这可能需要用到MMAPI(Multimedia Management Application Programming Interface),它是J2ME中的多媒体接口,可以获取音频的播放状态和时间信息。 4. **线程管理**:为了不影响MP3的正常播放,歌词滚动通常在一个...
Java 2 Micro Edition (J2ME) 是一种用于开发小型设备和嵌入式系统的 Java 平台,如手机、智能手表、电视盒等。在 J2ME 中实现视频播放功能...通过不断学习和实践,你可以在 J2ME 平台上创建出功能完善的视频播放应用。
本文旨在深入探讨J2ME中的MIDP(Mobile Information Device Profile)应用程序开发的最佳实践,涵盖如何优化资源利用、提高程序的适应性和用户体验,以及如何调试和优化J2ME程序。 #### 1. 自动适应用户手机配置 ...
在UI设计方面,J2ME应用需兼顾美观与实用性,尤其重视低配置设备的兼容性。利用上述资源管理技巧,确保即使在资源受限的设备上,应用也能提供基本功能,仅牺牲部分视觉效果。 #### 四、获取设备支持的可选API J2ME...
在J2ME中,由于资源限制,通常会使用裁剪过的JavaMail API版本,如Micro Edition Mail API(MMAPI)或KJavaMail库。 2. **SMTP协议**:Simple Mail Transfer Protocol(SMTP)是用于发送电子邮件的协议。在J2ME邮件...