2015-05-12 4 views
0

им работает на простом аудио приложения, но у меня есть серьезная проблема, потому что аудио не остановит при нажатии кнопки домой пользователя или переместить приложение на фонеСтоп фоновый звук на андроид приложение

я пытался использовать OnPause(), но его не работает для меня, пожалуйста, кто-нибудь может помочь?

import android.media.MediaPlayer; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends ActionBarActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final Button button1 = (Button) findViewById(R.id.btn1); 

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

button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if(angry.isPlaying()) { 

        angry.pause(); 
        button1.setText("Play"); 

       } else { 

        angry.start(); 
        angry.setLooping(true); 
        button1.setText("Pause"); 

       } 
      } 

     }); 

ответ

1

Вы должны приостановить экземпляр MediaPlayer в методе onPause().
Но из вашего кода ваш final MediaPlayer angry существует только в методе onCreate() как локальная переменная объекта. Чтобы устранить эту проблему, вам необходимо переместить объект angry с onCreate(), так что вы можете получить к нему доступ с помощью метода onPause(). Вот пример:

import android.media.MediaPlayer; 

public class MainActivity extends ActionBarActivity { 
MediaPlayer angry; //Now it is here 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    angry = MediaPlayer.create(MainActivity.this, R.raw.angry); 

И вы должны сделать паузу в onPause() способом, как это:

@Override 
public void onPause() 
{ 
    if (angry != null) 
    { 
    angry.pause(); 
    angry.stop(); 
    } 
    super.onPause(); 
} 
+0

эй Большое спасибо это действительно работает !! – Menaka

Смежные вопросы