1

当我使用 prepare(); 在我的媒体播放器上,会弹出一个黑色布局,直到准备好媒体播放器。我想更改那个黑屏布局,这可能吗?

4

2 回答 2

5

prepare();是一个阻塞操作,如果你不想阻塞你的 UI 线程使用prepareAsync();. 或者在另一个线程中使用准备

于 2011-09-16T13:14:48.283 回答
4

在后台线程中执行所有这些操作,直到媒体播放器实例准备好播放资源并显示进度条为止

 //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    
        }
    });
于 2011-09-16T13:11:37.670 回答