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 に答える