2012-07-12 110 views
1

我有問題在我的應用程序播放wav文件。播放文件wav j2me - IllegalArgumentException在Manager.createPlayer()

這是我的錯誤:

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) 

這是我的代碼:

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(); 
    } 

設備配置:CLDC-1.1
設備配置文件MIDP 2.0

+3

你的問題是什麼?你有例外嗎? – 2012-07-12 19:11:26

+0

我的wav文件無法播放,怎麼了? – 2012-07-13 13:07:49

+1

由於你的代碼看起來是正確的,並假設你沒有得到例外。我認爲問題出在您的文件或設備上(它可能無法播放wav)。請打電話給System.getProperty(「audio.encodings」),看看你能玩什麼。 – 2012-07-13 14:24:58

回答

1

錯誤消息你得有足夠的信息來確定代碼中出了什麼問題。

看它有點接近:

java.lang.IllegalArgumentException 
    at javax.microedition.media.Manager.createPlayer()... 

它說的東西在Manager.createPlayer()出了問題。從你的代碼中,顯然你使用方法Manager.createPlayer(java.io.InputStream stream, java.lang.String type)

如果你看看API文檔你使用的方法(available online),當這種異常發生時,你會發現解釋:

Throws: 
     java.lang.IllegalArgumentException - Thrown if stream is null. 

以上意味着stream參數(is在你的代碼)傳遞給該方法的是null。

您可以在is的初始化之後添加一些記錄調試這個問題更容易:

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」看起來像一個打錯「/test.wav」

+0

謝謝先生呃... – 2012-07-16 07:58:55

+0

@MuhamadBurhanudin,歡迎您。如果你有興趣,你可以看看[說明解釋如何接受堆棧溢出回答](http://meta.stackexchange.com/a/5235/165773) – gnat 2012-07-16 08:03:45

+1

我得到了答案的問題,請點擊這裏: [link] http://burhanudin.web.id/programing/java/play-audio-with-j2me [/ link] – 2012-07-29 00:55:08