0
我試圖設置setLooping
爲true,沒有任何結果。我希望在檢測到事件時重複播放音效,並在播放時停止重複播放。如何重複聲音效果MotionEvent.ACTION_DOWN
public class MainActivity extends Activity implements SurfaceHolder.Callback {
MediaPlayer player;
public void onCreate(Bundle savedInstanceState) {
player = MediaPlayer.create(this, R.raw.rifle);
player.setLooping(true);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
int ey = (int) event.getY();
if (ey > height/2) {
player.start();
}
}
return super.onTouchEvent(event);
}
}
我試過這個,看起來實現這個,導致聲音效果排隊;所以當按住屏幕約5秒鐘時,儘管我不再按下屏幕,但聲音重複約15分鐘。我試圖完成的是當按下屏幕時,聲音快速重複(如槍聲),當我停止觸摸屏幕時,它將當前正在播放的聲音效果播放到最後,然後停止播放。 – user1712484
嘗試在播放器上使用setOnCompletionListener方法,在實際聲音結束時,您可以告訴播放器該做什麼:重新開始播放聲音,或者什麼也不做。 –
謝謝Berrigeák,我會試試! – user1712484