2013-09-30 130 views
0

我已將兩個imageButton添加到我的活動中並單擊每個人都應播放不同的聲音。 但是,當我點擊任何按鈕時,聲音無法播放,並且日誌顯示錯誤。播放按鈕上的聲音時發生錯誤點擊

logcat的錯誤

09-30 15:19:07.436: D/dalvikvm(477): GC_EXTERNAL_ALLOC freed 629 objects/50520 bytes in 180ms 
09-30 15:19:10.226: E/MediaPlayer(477): start called in state 1 
09-30 15:19:15.276: E/MediaPlayer(477): start called in state 1 

這裏是一片我寫的代碼,

import android.media.MediaPlayer; 

public class MainActivity extends Activity { 


MediaPlayer mp; 
ImageButton iV1,iV2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    iV1 = (ImageButton)findViewById(R.id.iV1); 
    iV2 = (ImageButton)findViewById(R.id.iV2); 
    mp = MediaPlayer.create(this, R.raw.bud); 
    mp = MediaPlayer.create(this, R.raw.classic); 

iV1.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     mp = new MediaPlayer(); 
     mp.prepare(); 

     mp.start(); 

    }}); 

iV2.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

     mp = new MediaPlayer(); 
     mp.prepare(); 
     mp.start(); 

    }}); 

    } 
} 

請幫我在這。任何幫助將不勝感激。我是Android的這種環境的新手。

在此先感謝。

回答

1

這裏有幾個問題。首先,每次按下按鈕時都會創建一個新的MediaPlayer對象。您應該刪除這些行:

mp = new MediaPlayer(); 
mp1 = new MediaPlayer(); 

您已經使用靜態創建方法創建了對象。

而且前面已經提到的,你需要調用準備調用之前開始:

mp.prepare(); 
mp.start(); 
相關問題