0

音楽アプリを作成しています。問題があります。ユーザーが戻る/ホームを押すと、音楽が再生され続けます。

これが私のAPKファイルです

ユーザーがメイン アクティビティに戻り、現在のアクティビティ (音楽の再生) をクリアできるようにするにはどうすればよいですか?

4

5 に答える 5

1

そこで音楽をオーバーライドonPause()または停止する必要があります。onStop()

于 2012-05-16T04:39:22.520 に答える
1

onWindowsFocusChanged(boolean hasFocus)メソッドをオーバーライドしてみてください。

于 2012-05-16T06:59:56.280 に答える
0

Activity の onPause() を使用して、Mediaplayer を停止または一時停止できます。

このように onPause() をオーバーライドします。

@Override
protected void  onPause()
{
    super.onPause();
  if(mediaplayer!=null)
{
    mediaplayer.pause();
}
}

もう一度アクティビティに入ったら、次のように onResume() をオーバーライドします。

@Override
            protected void onResume() {
                super.onResume();

 if(mediaplayer!=null)
{
    mediaplayer.start();
}
}
于 2012-05-16T04:39:53.397 に答える
0

ユーザーが戻るボタンをクリックすると、コントロールは次のメソッド内に入ります (このメソッドをコードに挿入します)。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                    // code to pause or stop the music!!!!
            }
            **return false;**
        }
于 2012-05-16T05:19:30.317 に答える
0

onpause と onstart の切り替えが重要 onPause() メソッドは、プレーヤーがこのインスタンスを制御できるようにオーバーライドされます。また、あなたはこれを参照することができます

package org.example.audio;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class AudioDemo extends Activity implements OnClickListener {
    private static final String TAG = "AudioDemo";
    private static final String isPlaying = "Media is Playing"; 
    private static final String notPlaying = "Media has stopped Playing"; 

    MediaPlayer player;
    Button playerButton;

    public void onClick(View v) {
        Log.d(TAG, "onClick: " + v);
        if (v.getId() == R.id.play) {
            playPause();
        }
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        player = MediaPlayer.create(this, R.raw.robotrock);
        player.setLooping(false); // Set looping

        // Get the button from the view
        playerButton = (Button) this.findViewById(R.id.play);
        playerButton.setText(R.string.stop_label);
        playerButton.setOnClickListener(this);

        // Begin playing selected media
        demoPlay();

        // Release media instance to system
        player.release();

    }

    @Override
    public void onPause() {
        super.onPause();
        player.pause();
    }

    // Initiate media player pause
    private void demoPause(){
            player.pause();
            playerButton.setText(R.string.play_label);
            Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show();
            Log.d(TAG, notPlaying);
    }

    // Initiate playing the media player
    private void demoPlay(){
            player.start();
            playerButton.setText(R.string.stop_label);
            Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();
            Log.d(TAG, isPlaying);
    }

    // Toggle between the play and pause
    private void playPause() {
        if(player.isPlaying()) {
          demoPause();
        } else {
          demoPlay();
        }   
    }
}
于 2012-05-16T04:51:38.427 に答える