首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放文件wav j2me - IllegalArgumentException at Manager.createPlayer()

播放文件wav j2me - IllegalArgumentException at Manager.createPlayer()
EN

Stack Overflow用户
提问于 2012-07-12 16:42:06
回答 1查看 1.6K关注 0票数 1

在我的应用程序中播放wav文件有问题。

这是我的错误:

代码语言:javascript
复制
java.lang.IllegalArgumentException
 at javax.microedition.media.Manager.createPlayer(), bci=8
 at Tajwid.Tajwid.run(Tajwid.java:649)
 at Tajwid.Tajwid.actionPerformed(Tajwid.java:186)
 at com.sun.lwuit.util.EventDispatcher.fireActionSync(), bci=19
 at com.sun.lwuit.util.EventDispatcher.fireActionEvent(EventDispatcher.java:257)

这是我的密码:

{ InputStream is = getClass().getResourceAsStream("/tes.wav");player = Manager.createPlayer(is,“音频/x”);player.realize();//获取播放机卷控制,并将音量设置为max vc = (VolumeControl) player.getControl("VolumeControl");if (vc != null) { vc.setLevel(100);} player.prefetch();player.start();} catch (异常e) { e.printStackTrace();}

设备配置: CLDC-1.1

设备配置文件MIDP2.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 02:37:26

您得到的错误消息有足够的信息来显示代码中的错误。

再近一点看:

代码语言:javascript
复制
    java.lang.IllegalArgumentException
     at javax.microedition.media.Manager.createPlayer()...

上面说Manager.createPlayer()出了点问题。从您的代码中可以看出,您使用的是Manager.createPlayer(java.io.InputStream stream, java.lang.String type)方法。

如果您查看您使用的方法的API文档 (可在线获得),则会发现发生此异常时的解释:

代码语言:javascript
复制
    Throws:
        java.lang.IllegalArgumentException - Thrown if stream is null. 

以上表示传递给方法的stream参数(代码中的is)为null。

您可以在is初始化后添加一些日志记录,以便更容易地调试此问题:

代码语言:javascript
复制
InputStream is = getClass().getResourceAsStream("/tes.wav");
// add some logging to see if initialization was OK or not:
System.out.println("input stream is null: [" + (is == null) + "]");

这样,在模拟器中运行MIDlet时,您将看到is是否按预期进行了初始化。

实际上,看一下代码,我猜您在传递给getResourceAsStream:"/tes.wav"的文件名中输入了一个错误类型的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11456600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档