MediaPlayer 'prepare ();' проблема - PullRequest
       21

MediaPlayer 'prepare ();' проблема

1 голос
/ 16 сентября 2011

Когда я использую prepare (); в моем медиаплеере всплывающая черная раскладка, пока медиаплеер не подготовлен ... Я хочу изменить эту раскладку черных экранов, это возможно?

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011

prepare(); является операцией блокировки, если вы не хотите блокировать ваш поток пользовательского интерфейса, используйте prepareAsync();. Или используйте приготовить в другой теме

4 голосов
/ 16 сентября 2011

Делайте все это в фоновом потоке, пока экземпляр медиаплеера не подготовит ресурс для воспроизведения и покажет индикатор выполнения до этого времени

 //progressDialog
    Thread th=new Thread(new Runnable() {
        @Override
        public void run() {
            MediaPlayer md=new MediaPlayer();
            try {
                md.setDataSource("Path");
                md.prepareAsync();
                md.start();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //send message to handler
        }
    });
    th.start();
    //and then dissmiss dialog in handler class

Обновление

Чтобы знатькогда медиаплеер будет готовить

    md.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
        //Now your media player is ready to play    
        }
    });
...