Reputation: 1317
I´m a 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();
}
}
Upvotes: 0
Views: 386
Reputation: 20513
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();
}
}
Upvotes: 1