浏览 3093 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-04
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) { } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |