0

プロジェクトにボタンがあります。ボタンがクリックされたときに>>>>サウンドを開始し、ボタンが再度クリックされたときに>>>サウンドを停止したい...このコードを使用しますが、サウンドを停止して何度も開始することはできません...どうすればよいですかこれ?ありがとうございました。

Button  btritm1 =  (Button) findViewById(R.id.button9991);
btritm1.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);
        if (event.getAction() == MotionEvent.ACTION_DOWN  ) 
        {
            if(mp1_1 != null && mp1_1.isPlaying() ) 
            {
                mp1_1.stop();
            }        
            else {      
                //  xritm1 = 1;
                //  snd.stop_s_ritm1(); 
                mp1_1.setLooping(true);
                mp1_1.start(); 
            }
        }  // end of if
        return false;
    }
});  // end of ontouch listener/* 
4

2 に答える 2

1
if(sound.isPlaying()){
sound.stop();
}else{
sound.reset();
sound.setDataSource(yourURL);//or InputStream etc.
    sound.prepare();
sound.start();
}
于 2013-01-10T11:12:08.350 に答える
1

良い習慣を使用するには、MediaPlayerオブジェクトをクラス変数として宣言し、onCreate()メソッドで初期化します。問題は、コントロールに触れるたびに新しいプレーヤーオブジェクトが作成されることです。すでに上で述べたように、ライン

  final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);

リスナーの外にある必要があります。

于 2013-01-10T11:22:55.577 に答える