2011-06-09 229 views
0

在我的应用中,当用户单击按钮时,会播放声音。由于用户可以多次按下该按钮,并且比声音的长度快得多,所以我缩短了声音。现在它就像0.2秒或sg。奇怪的是,现在Android无法播放声音,我的应用程序部队关闭。那么这是声音的长度还是什么?它与之前的类似.mp3。 这是我使用的代码:Android声音问题

mp = MediaPlayer.create(Start.this, R.raw.clicksound2); 
       mp.start(); 
       NameButton.setEnabled(false); 
       mp.setOnCompletionListener(new OnCompletionListener() { 

        @Override 
        public void onCompletion(MediaPlayer mp) { 

         mp.release(); 
         NameButton.setEnabled(true); 
        } 

       }); 

的logcat:

06-09 05:38:23.774: ERROR/AndroidRuntime(551): java.lang.NullPointerException 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at com.bfarago.clickme.Start$1.onClick(Start.java:113) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.view.View.performClick(View.java:2408) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.view.View$PerformClick.run(View.java:8816) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.os.Handler.handleCallback(Handler.java:587) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.os.Looper.loop(Looper.java:123) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
06-09 05:38:23.774: ERROR/AndroidRuntime(551):  at dalvik.system.NativeStart.main(Native Method) 
06-09 05:38:23.794: WARN/ActivityManager(70): Force finishing activity com.bfarago.clickme/.Start 
06-09 05:38:24.357: WARN/ActivityManager(70): Activity pause timeout for HistoryRecord{43efc7b0 com.bfarago.clickme/.Start} 

113线是mp.start();

+0

尝试给geBaseContext()代替Start.this – Lavanya 2011-06-09 06:05:23

+0

不幸的是没有工作。 – erdomester 2011-06-09 19:07:02

+0

我缩短了另一个文件,并得到相同的错误。我为此使用了Audacity。奇怪。 – erdomester 2011-06-09 19:46:13

回答

0

我看不到你的代码,但在你的代码,你必须休息mp.release()在 MediaPlayer mp完成播放之后调用,之后对象mp不再可用,因此您需要重新创建它。

+0

我玩两个声音。第一个是玩,第二个不是。第二个是通过缩短从第一个创建的。代码没有问题。 – erdomester 2011-06-09 12:34:52