Как остановить аудио? - PullRequest
       22

Как остановить аудио?

0 голосов
/ 04 февраля 2012

Вот моя проблема: когда я запускаю Activity, музыка запускается так, как я хочу, но когда я покидаю Activity (нажатием кнопки назад), приложение вылетает и «неожиданно останавливается» :( Все, что я хочу сделатьесть звук STOP и перейти к другому занятию без неожиданной остановки. Как я могу это сделать?

public class Run extends Activity {

/** The OpenGL View */
private GLSurfaceView glSurface;
private MediaPlayer mPlayer;

/**
 * Initiate the OpenGL View and set our own
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Create an Instance with this Activity
    glSurface = new GLSurfaceView(this);
    //Set our own Renderer and hand the renderer this Activity Context
    glSurface.setRenderer(new Lesson06(this));
    //Set the GLSurface as View to this Activity
    setContentView(glSurface);

    new Thread(new Runnable() {
        public void run() {
            try{
                MediaPlayer mPlayer = MediaPlayer.create(Run.this, R.drawable.theygonelovemeformyambition);
                mPlayer.setLooping(true);
                mPlayer.start();
                while(mPlayer.isPlaying()){
                    android.os.SystemClock.sleep(100);
                }
            }catch(Exception e){
                String TAG = null;
                Log.d(TAG,"ERROR PLAYING");
                e.printStackTrace();
            }
        }}).start();

}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    mPlayer.release();
}
}

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Вы не инициализировали mPlayer
В публичной void run () вы просто создаете новый MediaPlayer и так, когда вы пытаетесь mPlayer.release (); вы ссылаетесь на нулевой mPlayer, и поэтому вы получаете nullPointerExceptionerror (я думаю)

0 голосов
/ 04 февраля 2012

привет, прежде чем вы должны освободить ресурсы медиаплеера.Вы должны остановить медиаплеер, как показано ниже.

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub

    if(mPlayer.isPlaying())
       mPlayer.stop();

    mPlayer.release();

    super.onDestroy();
}
...