2011-06-09 226 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