简体   繁体   中英

Android MediaPlayer onPause()

I´ma begginer developer for Android and i want to develop a basic app that start music when its opened and stop when its finished (onPause). When i create a method "onPause", my condition "musica.stop();" don´t work.

My code:

import android.media.MediaPlayer;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final MediaPlayer mpBtnsom = MediaPlayer.create(this, R.raw.somvoa);
        ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton2);

        MediaPlayer musica = MediaPlayer.create(this, R.raw.sommusica);
        musica.start();
        musica.setLooping(true);

        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mpBtnsom.start();
            }
        });
    }

    public void toast2(View view){
        Toast toast = Toast.makeText(MainActivity.this, "Botão ToastMessage", Toast.LENGTH_LONG);
        toast.show();
    }

    public void toast(View view){
        Toast toast = Toast.makeText(MainActivity.this, "Botão Felpudo", Toast.LENGTH_SHORT);
        toast.show();
    }

    protected void onPause(){
        super.onPause();

        musica.stop();
        finish();
    }
}

The problem is that variable musica is not reachable in your onPause() method. You should declare you variable musica for global use in the class like shown below.

public class MainActivity extends ActionBarActivity {

    private MediaPlayer musica;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final MediaPlayer mpBtnsom = MediaPlayer.create(this, R.raw.somvoa);
        ImageButton btn1 = (ImageButton) findViewById(R.id.imageButton2);

        musica = MediaPlayer.create(this, R.raw.sommusica);
        musica.start();
        musica.setLooping(true);

        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mpBtnsom.start();
            }
        });
    }

    public void toast2(View view){
        Toast toast = Toast.makeText(MainActivity.this, "Botão ToastMessage", Toast.LENGTH_LONG);
        toast.show();
    }

    public void toast(View view){
        Toast toast = Toast.makeText(MainActivity.this, "Botão Felpudo", Toast.LENGTH_SHORT);
        toast.show();
    }

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

        musica.stop();
        finish();
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM