2011-03-17 97 views
3

我在播放Android MediaPlayer的聲音時遇到了一些奇怪的問題。使用Android MediaPlayer播放聲音的問題

在我看來構造函數,我這樣做:

clickSound = MediaPlayer.create(context, R.raw.ggclick); 
    rightSound = MediaPlayer.create(context, R.raw.right); 
    wrongSound = MediaPlayer.create(context, R.raw.wrong); 

,然後當我想玩的聲音:

if(prefs.getBoolean("playClick", true)) 
    clickSound.start(); 

的文件都是很短的WAV文件,這曾經工作。我最近將手機升級到了2.2(FRG83G),我認爲這是clickSound停止工作的時候。其他兩個仍然工作。

我嘗試將點擊聲音切換到ogg,然後所有三個工作。爲了保持一致性,我將其他兩個切換到了ogg,再次點擊聲音停止工作,但其他兩個都成功播放。

有人知道這裏發生了什麼嗎?

+0

您是否收到任何錯誤訊息?這可能是因爲點擊聲音太短,無法以您擁有的格式在2.2 mediaplayer中播放。 – 2011-03-21 22:58:55

回答

2

這裏是我fonction從原料資源播放聲音:

protected MediaPlayer _mediaPlayer; 

public void playFromResource(int resId)  
    { 
    if (_mediaPlayer != null) 
     { 
     _mediaPlayer.reset(); 
     } 
    _mediaPlayer = MediaPlayer.create(this, resId); 
    _mediaPlayer.start(); 
    } 
1

如果你是剛剛發射很短的樣品(沒有歌曲或長的路線),而無需操縱它們在旅途中,您應該改用SoundPool。