2012-02-01 3 views
1

이 문제를 해결할 수 없습니다. 오디오 파일을 재생하고 해당 파일의 재생 시간을 가져와야합니다. 때로는 잘 작동하지만 오류 보여줍니다android : mediaplayer 오류 (1, -17)

아래는 내 로그 캣입니다 :

나는 stucked입니다 도와주세요.

02-01 12:30:40.287: E/MediaPlayer(256): error (1, -17) 
02-01 12:30:41.896: D/MediaPlayer(256): create failed: 
02-01 12:30:41.896: D/MediaPlayer(256): java.io.IOException: Prepare failed.: status=0x1 
02-01 12:30:41.896: D/MediaPlayer(256): at android.media.MediaPlayer.prepare(Native Method) 
02-01 12:30:41.896: D/MediaPlayer(256): at android.media.MediaPlayer.create(MediaPlayer.java:644) 
02-01 12:30:41.896: D/MediaPlayer(256):  at PointOf1761.onClick(PointOf1761.java:953) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.View.performClick(View.java:2364) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.View.onTouchEvent(View.java:4179) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.View.dispatchTouchEvent(View.java:3709) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
02-01 12:30:41.896: D/MediaPlayer(256):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
02-01 12:30:41.896: D/MediaPlayer(256):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 
02-01 12:30:41.896: D/MediaPlayer(256):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.os.Looper.loop(Looper.java:123) 
02-01 12:30:41.896: D/MediaPlayer(256):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
02-01 12:30:41.896: D/MediaPlayer(256):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-01 12:30:41.896: D/MediaPlayer(256):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-01 12:30:41.896: D/MediaPlayer(256):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
02-01 12:30:41.896: D/MediaPlayer(256):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
02-01 12:30:41.896: D/MediaPlayer(256):  at dalvik.system.NativeStart.main(Native Method) 

it says in line 953 

i have this in 953 

953 female = MediaPlayer.create(this, femaleNum[i]); 
954   handler.postDelayed(new Runnable() { 
955    
956    @Override 
957    public void run() { 
958     female.start(); 
959     
960    } 
961   },1000); 
+0

어떤 해결책이 있습니까? plz 도움 – Donald

답변

2

한 번에 너무 많은 MediaPlayer 개체를 사용하지 않도록하십시오. 참조 용으로 this을 참조하십시오.

+0

감사합니다 youri 나는 단 하나를 사용할 필요가 있기 때문에 나의 부호에있는 3 mediaplayers가 있는가? – Donald

+0

여기에서 성취하고자하는 것을 실제로 모르겠지만, 확실하게 MediaPlayer를 중단하고 다시 사용할 수 있습니다. – youri

+0

나는 세 개의 미디어 플레이어를 가지고 있는데 그 중 하나는 레코드 및 play.when 재생을 클릭하면 녹음 된 음성을 재생하지만 그 전에 나는 audio.For 그걸 사용하고있다 getDuration(); 지속 시간을 얻은 다음 녹음 된 음성을 재생합니다.이 작업은 잘 작동하지만 nullpointer 예외로이 오류가 표시되는 경우가 있습니다. – Donald