Как я могу сделать звук несколько раз, не нажимая его несколько раз (Android) - PullRequest
0 голосов
/ 16 января 2012

У меня есть кнопка в упражнении, и когда я нажимаю на нее, звучит звук.Сам звук длится 2 секунды.И он играет только когда я нажимаю на кнопку.Я хочу сделать так, чтобы пользователь мог удерживать кнопку нажатой, и звук воспроизводился до тех пор, пока он не отпустит кнопку.Как я могу это сделать?Вот мой текущий код.

package android.app;
import android.app.R;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;



public class activity2 extends Activity{

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);
//back button that takes u to main.xml
    Button next = (Button) findViewById(R.id.Back);
    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
        Intent intent = new Intent();
        setResult(RESULT_OK, intent);
        finish();
        }
        } );
    //Button that plays sound (whippingsound)
    Button sound = (Button) findViewById(R.id.sound);
        sound.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 MediaPlayer mp = MediaPlayer.create(activity2.this, R.raw.whippingsound);  
                 mp.start();
             }
        } );

    }   
}

Спасибо !!!

1 Ответ

2 голосов
/ 16 января 2012

Решением вашей проблемы является комбинация

Инициирующее событие при нажатии кнопки в Android

и

воспроизведение звука при нажатой кнопке -android .

А именно, вы используете onClickListener вместо onTouchListener.

Попробуйте вместо этого (примечание: я также переместил медиаплеер, чтобы вы создали его один раз и использовали его снова и снова).

    public class activity2 extends Activity{
        MediaPlayer mp = null;

        /** Called when the activity is first created. */
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
    //back button that takes u to main.xml
        Button next = (Button) findViewById(R.id.Back);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
            Intent intent = new Intent();
            setResult(RESULT_OK, intent);
            finish();
            }
            } );
        mp = MediaPlayer.create(activity2.this, R.raw.whippingsound);
        //Button that plays sound (whippingsound)
        Button sound = (Button) findViewById(R.id.sound);
            sound.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {

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

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

            return true;
        }
     });
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...