2011-09-16 2 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 차단을 원하지 않는 경우 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 업데이트를 참조하십시오 – Sameer

+1

다른 스레드 (UI 스레드가 아닌)를 사용하는 경우'prepareAsync()'를 사용할 필요가 없습니다. 이 시나리오에서는'mp.prepare()'가 권장됩니다. –