Java me 在Manager.createPlayer()处播放文件wav j2me-IllegalArgumentException

Java me 在Manager.createPlayer()处播放文件wav j2me-IllegalArgumentException,java-me,midp,mmapi,Java Me,Midp,Mmapi,我在应用程序中遇到播放wav文件的问题 这是我的错误: 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

我在应用程序中遇到播放wav文件的问题

这是我的错误:

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)
这是我的代码:

设备配置:CLDC-1.1

设备配置文件MIDP 2.0

您收到的错误消息具有足够的信息,可以找出代码中的错误

仔细看一下:

java.lang.IllegalArgumentException
在javax.microedition.media.Manager.createPlayer()中。。。
它说
Manager.createPlayer()
中出现了一些错误。从代码中可以明显看出,您使用了方法
Manager.createPlayer(java.io.InputStream,java.lang.String类型)

如果您查看API文档了解您使用的方法(),您会发现出现此异常时的解释:

抛出:
java.lang.IllegalArgumentException-在流为null时引发。
上面的意思是传递给方法的
参数(
在代码中是
)为空

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

InputStream is=getClass().getResourceAsStream(“/tes.wav”);
//添加一些日志以查看初始化是否正常:
System.out.println(“输入流为null:[”+(is==null)+“]”;
这样,当在emulator中运行MIDlet时,您将看到
是否按照预期进行了初始化


事实上,看看代码,我猜您在传递给getResourceAsStream的文件名中输入了一个错误:“/tes.wav”看起来像是输入错误的“/test.wav”

错误消息,您已经得到了足够的信息来判断代码中出现了什么错误

仔细看一下:

java.lang.IllegalArgumentException
在javax.microedition.media.Manager.createPlayer()中。。。
它说
Manager.createPlayer()
中出现了一些错误。从代码中可以明显看出,您使用了方法
Manager.createPlayer(java.io.InputStream,java.lang.String类型)

如果您查看API文档了解您使用的方法(),您会发现出现此异常时的解释:

抛出:
java.lang.IllegalArgumentException-在流为null时引发。
上面的意思是传递给方法的
参数(
在代码中是
)为空

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

InputStream is=getClass().getResourceAsStream(“/tes.wav”);
//添加一些日志以查看初始化是否正常:
System.out.println(“输入流为null:[”+(is==null)+“]”;
这样,当在emulator中运行MIDlet时,您将看到
是否按照预期进行了初始化


实际上,看看代码,我猜您在传递给getResourceAsStream的文件名中输入了一个错误:“/tes.wav”看起来像是输入错误的“/test.wav”

您有什么问题?您是否遇到异常?我的wav文件无法播放,出了什么问题?因为您的代码似乎是正确的,并且假设您没有遇到异常。我认为问题在于您的文件或设备(可能无法播放wav)。请调用System.getProperty(“audio.encodings”)并查看您可以播放什么。这是我的错误:javax.microedition.media.Manager.createPlayer()中的java.lang.IllegalArgumentException,Tajwid.Tajwid.run(Tajwid.java:649)中的bci=8,Tajwid.Tajwid.Tajwid.actionPerformed(Tajwid.java:186)中的com.sun.lwiit.util.EventDispatcher.fireActionSync(),bci=19,位于com.sun.lwuit.util.EventDispatcher.fireActionEvent(EventDispatcher.java:257)您的问题是什么?您是否遇到异常?我的wav文件无法播放,出了什么问题?因为您的代码似乎是正确的,并且假设您没有遇到异常。我认为问题在于您的文件或设备(可能无法播放wav)。请调用System.getProperty(“audio.encodings”)并查看您可以播放什么。这是我的错误:javax.microedition.media.Manager.createPlayer()中的java.lang.IllegalArgumentException,Tajwid.Tajwid.run(Tajwid.java:649)中的bci=8,Tajwid.Tajwid.Tajwid.actionPerformed(Tajwid.java:186)中的com.sun.lwiit.util.EventDispatcher.fireActionSync(),bci=19在com.sun.lwuit.util.EventDispatcher.fireActionEvent(EventDispatcher.java:257)@MuhamadBurhanudin不客气。如果您感兴趣,您可以查看我得到的答案问题,检查这里:[链接]@MuhamadBurhanudin欢迎您。如果您感兴趣,可以查看我得到的答案问题,请点击这里:[链接]
public void run() {
    try {
        InputStream is = getClass().getResourceAsStream("/tes.wav");
        player = Manager.createPlayer(is, "audio/x-wav");

        player.realize();
        // get volume control for player and set volume to max
        vc = (VolumeControl) player.getControl("VolumeControl");
        if (vc != null) {
            vc.setLevel(100);
        }
        player.prefetch();
        player.start();
    } catch (Exception e) {
        e.printStackTrace();
    }