Android MediaPlayer - PullRequest
       7

Android MediaPlayer

0 голосов
/ 19 сентября 2011

Я хочу подготовить свой медиаплеер к этому заданию, и когда оно будет готово, я хочу перейти к другому заданию и запустить там медиаплеер.Это не переходит к другой деятельности, можете ли вы мне помочь, пожалуйста?

        public void run() {

            try {
                mp.setDataSource(urls.getFirst());
                mp.setAudioStreamType(AudioManager.STREAM_MUSIC);       
                mp.setOnPreparedListener(new OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        Intent i = new Intent(Start.this, RadyoBabylonActivity.class);
                        startActivity(i);
                    }
                });
                mp.prepare();   

            } catch (Exception e) {

                e.printStackTrace();
            }   
        }
    });
    th.start();

1 Ответ

2 голосов
/ 19 сентября 2011

Я считаю, что проблема в том, что вы пытаетесь запустить Activity непосредственно из фонового потока. Я не верю, что это можно сделать напрямую в Android - вместо этого вы должны запустить Activity из потока пользовательского интерфейса. Следовательно, способ сделать это в Android - использовать Handler. Handler живет в потоке пользовательского интерфейса и получает сообщения из фонового потока для выполнения ваших действий пользовательского интерфейса, таких как запуск другого Activity.

Пример:

//Inside your activity:
final Handler messageHandler = new Handler() {
    public void handleMessage(Message msg) 
    {
        //Start Activity
        Intent i = new Intent(Start.this, RadyoBabylonActivity.class);
        startActivity(i);
    }
}

//Inside onPrepared(MediaPlayer mp):
messageHandler.sendEmptyMessage(0);

Смотри также: http://developer.android.com/reference/android/os/Handler.html

...