2012-02-01 32 views
1

我无法找到解决此问题的解决方案。 我只需要播放一个音频文件并获取该文件的持续时间。有时它工作正常,但它显示错误:android:mediaplayer error(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帮助 – Donald 2012-02-01 07:37:09

回答

2

请确保您没有太多同时活动的MediaPlayer对象。请参阅this以供参考。

+0

谢谢你,我有3个媒体播放器在我的代码,所以我只需要使用一个? – Donald 2012-02-01 08:43:28

+0

真的不知道你想在这里实现什么,但是,你肯定可以停止并重新使用MediaPlayer。 – youri 2012-02-01 09:07:42

+0

我在那里有三个媒体播放器用于录制和播放。当我点击播放时播放录制的声音,但在此之前我正在播放音频。为此,我使用了getDuration();获得持续时间,然后播放录制的语音。这就是我想达到它的工作正常,但有时它显示这个错误与空指针异常 – Donald 2012-02-01 09:11:14

相关问题