Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java me J2ME播放器对象在预取之前挂起_Java Me_Prefetch - Fatal编程技术网

Java me J2ME播放器对象在预取之前挂起

Java me J2ME播放器对象在预取之前挂起,java-me,prefetch,Java Me,Prefetch,我正在尝试用J2ME为诺基亚SDK(S60设备)编写代码,并且正在使用Eclipse 代码尝试播放放置在项目“res”目录中的一些wav文件。代码如下: InputStream in1 = null; System.out.println("ABout to play voice:" + i); try { System.out.println("Getting the resource as stream.");

我正在尝试用J2ME为诺基亚SDK(S60设备)编写代码,并且正在使用Eclipse

代码尝试播放放置在项目“res”目录中的一些wav文件。代码如下:

InputStream in1 = null;
        System.out.println("ABout to play voice:" + i);
        try {
            System.out.println("Getting the resource as stream.");
            in1 = getClass().getResourceAsStream(getsound(i));
            System.out.println("Got the resouce. Moving to get a player");
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        try {
            player = Manager.createPlayer(in1, "audio/x-wav");
            System.out.println("Created player.");
            //player.realize();
            //System.out.println("Realized the player.");
            if(player.getState() != player.REALIZED) {
                System.out.println("The player has been realized.");
                player.realize();
            }
            player.prefetch();
            System.out.println("Fetched player. Now starting to play sound.");
            player.start();
            in1.close();
            int i1 = player.getState();
            System.out.println("Player opened. Playing requested sound.");
            //player.deallocate();
            //System.out.println("Deallocated the player.");
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
其中,函数getSound返回一个字符串,该字符串包含要播放的文件的名称。详情如下:

private String getSound(int i) {
   switch(i) {  
     case 1: return "/x1.wav";
     case 2: return "/x2.wav";
   }
}
我的问题是: 1.当我尝试添加10个以上的声音时,整个应用程序在调用prefetch()函数之前挂起。整个系统相当慢了一段时间。然后我必须重新启动应用程序。

我已经尝试过调试这个,但到目前为止还没有得到任何解决方案。如果我能在这方面得到一些帮助就太好了。

问题在于项目中使用的模拟器。在“运行配置”窗口的“仿真”选项卡中,必须选择以下设备:

组:诺基亚N97 SDK v1.0
设备:S60仿真器


从Sun Java Wireless Toolkit下列出的设备更改为上述设备解决了问题。

问题在于用于项目的模拟器。在“运行配置”窗口的“仿真”选项卡中,必须选择以下设备:

组:诺基亚N97 SDK v1.0
设备:S60仿真器

从Sun Java Wireless Toolkit下列出的设备更改为上述解决了该问题