2011-03-09 248 views
5

我有這樣的代碼在按下按鈕播放聲音-Android

package com.tct.soundTouch; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 

public class main extends Activity implements OnTouchListener { 

    private MediaPlayer mp; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button zero = (Button) this.findViewById(R.id.button); 
     zero.setOnTouchListener(this); 

     mp = MediaPlayer.create(this, R.raw.sound); 

    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     switch (event.getAction()) { 

     case MotionEvent.ACTION_DOWN: 
      mp.setLooping(true); 
      mp.start(); 

     case MotionEvent.ACTION_UP: 
      mp.pause(); 
     } 

     return true; 
    } 

} 

和它的作品,但並不如我所料。聲音播放,但每次我按下按鈕。我的想法是。當我按下按鈕聲音播放時,當我停止動作(手指離開按鈕)音樂暫停。

有什麼想法嗎?

感謝

+2

它只是增加回報忠實於每一種情況下,現在的作品 – anvd 2011-03-09 23:14:05

+0

燁,或break語句。要麼會工作。 – kcoppock 2011-03-09 23:20:17

+0

@Fel您應該將其作爲回答發佈,如果能解決您的問題,請接受它。 – 2011-11-10 16:35:06

回答

3

這應該工作(有我覺得有什麼不對您的開關的情況下):

@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 

    switch (event.getAction()) 
    { 

    case MotionEvent.ACTION_DOWN: 
    { 
     mediaPlayer.setLooping(true); 
     mediaPlayer.start(); 
    } 

    break; 
    case MotionEvent.ACTION_UP: 
    { 
     mediaPlayer.pause(); 
    } 
    break; 
} 

return true; 
}