2011-09-16 8 views
1

私はprepare()を使用します。私のメディアプレイヤーでは、メディアプレイヤーが準備されるまで、黒いレイアウトがポップアップします。その黒い画面のレイアウトを変更したい、それは可能ですか?メディアプレーヤーのインスタンスは、メディアプレーヤーがMediaPlayer 'prepare();'問題

を準備するとき

//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 

が更新

が知っているその時間件までプログレスバーを再生し、表示するためにリソースを準備するまで

答えて

5

prepare();は、あなたのUIをブロックしたくない場合、ブロック操作です。Thr ead use prepareAsync();。 または別のスレッドで準備を使用する

4

は、バックグラウンドスレッドで、これらすべてのことを行います
md.setOnPreparedListener(new OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
     //Now your media player is ready to play  
     } 
    }); 
+1

Thannk alot。メディアプレーヤーが準備されているかどうかはどのように確認できますか? – aamethk

+0

@aamethk update – Sameer

+1

を参照してください。別のスレッド(UIスレッド以外)を使用している場合、 'prepareAsync()'を使用する必要はありません。このシナリオでは、 'mp.prepare()'がお勧めです。 –