j2me播放视频

发布于 2024-11-29 04:06:32 字数 2583 浏览 1 评论 0原文

播放器不播放项目中存储的视频( res 和 src 中的文件),

public class videoplayer extends MIDlet {
       Display display;
       Player player;

       public videoplayer() {
          try{
                display = Display.getDisplay(this);
                InputStream is =getClass().getResourceAsStream("/a1.mpg");
                player = Manager.createPlayer(is,"video/mpeg");

          }catch(Exception e)
          {
            e.printStackTrace();
          }
       }

       protected void startApp() {        
           try {
                 VideoControl vc;
                 player.realize();
                 vc = (VideoControl)player.getControl("VideoControl");
                 if(vc != null) {
                    Item video = (Item)vc.initDisplayMode(vc.USE_GUI_PRIMITIVE, null);
                    Form v = new Form("Playing Video...");
                    v.append(video);
                    display.setCurrent(v);
                 }
                 player.prefetch();
                 player.start();
              }
          catch(Exception e)
          {
              e.printStackTrace();
          }

       }

但在运行时显示以下异常。我通过将文件存储在 res 和 src 中尝试了此代码,但有相同的例外。

java.lang.IllegalArgumentException
 - javax.microedition.media.Manager.createPlayer(), bci=8
 - videoplayer.videoplayer.<init>(), bci=25
 - java.lang.Class.newInstance(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=46
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=66
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=27
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.NullPointerException:   0
 - videoplayer.videoplayer.startApp(), bci=4
 - javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
 - com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

编辑:目录结构

在此处输入图像描述

The player doesn't play videos stored in project (File in res and src )

public class videoplayer extends MIDlet {
       Display display;
       Player player;

       public videoplayer() {
          try{
                display = Display.getDisplay(this);
                InputStream is =getClass().getResourceAsStream("/a1.mpg");
                player = Manager.createPlayer(is,"video/mpeg");

          }catch(Exception e)
          {
            e.printStackTrace();
          }
       }

       protected void startApp() {        
           try {
                 VideoControl vc;
                 player.realize();
                 vc = (VideoControl)player.getControl("VideoControl");
                 if(vc != null) {
                    Item video = (Item)vc.initDisplayMode(vc.USE_GUI_PRIMITIVE, null);
                    Form v = new Form("Playing Video...");
                    v.append(video);
                    display.setCurrent(v);
                 }
                 player.prefetch();
                 player.start();
              }
          catch(Exception e)
          {
              e.printStackTrace();
          }

       }

but it shows following exceptions in run time. i tried this code by storing file in res and with src but same exceptions.

java.lang.IllegalArgumentException
 - javax.microedition.media.Manager.createPlayer(), bci=8
 - videoplayer.videoplayer.<init>(), bci=25
 - java.lang.Class.newInstance(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=46
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=66
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=27
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.NullPointerException:   0
 - videoplayer.videoplayer.startApp(), bci=4
 - javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
 - com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

EDIT: directory structure

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世俗缘 2024-12-06 04:06:32

将文件放入 res 并将 res 放在 src 下,

因此它应该是

src \ res

InputStream is =getClass().getResourceAsStream("res/a1.mpg")

在第二个问题的代码更新

中转到

/runtimes/cldc-hi/bin/jwc_properties.ini

找到属性 system.jam_space 提高其值

put the file into res and put res under src

so it should be

src \ res

and in code

InputStream is =getClass().getResourceAsStream("res/a1.mpg")

Update on your second issue

go to

/runtimes/cldc-hi/bin/jwc_properties.ini

find the property system.jam_space raise its value

挽你眉间 2024-12-06 04:06:32

尝试在文件路径之前使用前缀 file://

try with the prefix file:// before the file path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文