2012-07-12 4 views
1

내 응용 프로그램에서 wav 파일 재생에 관한 문제가 있습니다.재생 파일 wav j2me - Manager.createPlayer()에서 IllegalArgumentException

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

장치 구성 : 이것은 내 코드입니다

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

+3

무엇이 문제입니까? 예외가 있니? –

+0

내 wav 파일을 재생할 수 없습니다. 무엇이 잘못 되었나요? –

+1

코드가 올바르게 보이고 예외가 발생하지 않는다고 가정 할 때. 파일이나 기기에 문제가 있다고 생각합니다 (wav를 재생하지 못할 수도 있음). System.getProperty ("audio.encodings")를 호출하고 재생할 수있는 것을 확인하십시오. java.lang.IllegalArgumentException가 javax.microedition.media.Manager.createPlayer에서 \t(), \t 8 = BCI Tajwid.Tajwid.run (Tajwid.java:649)에서 Tajwid에서 \t : –

답변

1

오류 메시지가있어 코드에서 무엇이 잘못되었는지 파악할 수있는 충분한 정보가 있습니다. 조금 더 가까이에서

봐 :

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

그것은 뭔가 Manager.createPlayer()에 잘못된 말한다. 코드에서 메서드 Manager.createPlayer(java.io.InputStream stream, java.lang.String type)을 사용하는 것이 분명합니다.

당신은 당신이 사용하는 방법 (available online)이 예외가 발생하면, 당신이 설명을 찾을 수 있습니다에 대한 API 문서로 보면 :

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) + "]"); 

그런 식으로, 당신이 예상 여부로 is가 초기화되었는지 여부를 확인할 수 있습니다.

사실, 난 당신이 같이 getResourceAsStream에 전달 된 파일 이름에 오타를 한 것으로 추측 할 코드를보고 : 는 "/tes.wav는"는 잘못 입력 "/test.wav" 것 같습니다.

+0

감사합니다 mr Gnat ... –

+0

@MuhamadBurhanudin 당신은 환영합니다. 혹시 관심이 있으시면, [Stack Overflow에서 응답을 받아들이는 것이 어떻게 작동하는지 설명하는 지침] (http://meta.stackexchange.com/a/5235/165773) – gnat

+1

제가 대답에 문제가 있습니다. 여기에서 확인하십시오 : [link] http://burhanudin.web.id/programing/java/play-audio-with-j2me [/ link] –