2012-02-01 2 views
1

Я не могу найти решение этой проблемы. Мне просто нужно воспроизвести аудиофайл и получить продолжительность этого файла. Иногда это работает хорошо, но он показывает ошибки:android: ошибка mediaplayer (1, -17)

Ниже мой LogCat:

Пожалуйста, помогите мне 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 help – Donald

ответ

2

Пожалуйста, убедитесь, что у вас не так много объектов MediaPlayer сразу. См. this для справки.

+0

спасибо youri у меня есть 3 mediaplayers в моем коде, поэтому мне нужно использовать только один? – Donald

+0

Не знаете, чего вы хотите достичь здесь, но да, конечно, вы можете остановить и повторно использовать MediaPlayer. – youri

+0

У меня есть три медиаплеера в том, что для записи и воспроизведения. Когда я нажимаю на воспроизведение, он воспроизводит записанный голос, но до этого я играю аудио. Для этого я использовал getDuration(); чтобы получить продолжительность, а затем воспроизвести записанный голос. Это то, что я хочу добиться, он отлично работает, но иногда он показывает эту ошибку с исключением nullpointer – Donald

Смежные вопросы