我正在尝试在J2ME中为Nokia 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()函数之前就会挂起。整个系统大大减慢了一段时间。然后我必须重新启动应用程序 我试图调试这个,但到目前为止还没有得到任何解决方案。如果我能得到一些帮助就会很棒。
答案 0 :(得分:1)
问题在于用于项目的模拟器。在“运行配置”窗口的“仿真”选项卡中,必须选择以下设备:
组:诺基亚N97 SDK v1.0
设备:S60仿真器
从Sun Java Wireless Toolkit下列出的设备更改为上述内容解决了这个问题。