2012-04-01 45 views
0

ビデオをロードしているときにProgressDialogを表示しようとしています。 私のplay(String _videoUri)関数が呼び出されていないようです。 誰でも私にその理由を教えてもらえますか?なぜ私の関数が呼び出されないのですか?

新しいIntentを開始するためのこのセットアップはまったく同じですが、うまくいくようですが、この場合や指定されたURLから動画を読み込むことはできません。

private void showPopupMenu(View v){ 
    PopupMenu popupMenu = new PopupMenu(VideoPlayer.this, v); 


    if(bitRates != null){ 
      for(int i=0;i<bitRates.size();i++){ 
       int menuItem = i; 
       popupMenu.getMenu().add(0,menuItem, 0,"BitRate: "+bitRates.get(i)); 

      } 
     } 
    popupMenu.show(); 
    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 

    public boolean onMenuItemClick(final MenuItem item) { 
     progressDialog = ProgressDialog.show(VideoPlayer.this, "", "Loading video..."); 
     new Thread() { 

      public void run() { 

       try{ 
        play(streamUrls.get(item.getItemId())); 

       } 
       catch (Exception e) 
       { 

        Log.e("tag", e.getMessage()); 

       } 
       progressDialog.dismiss(); 
      } 

     }.start(); 

     return true; 

    } 
    }); 


} 


    public void play(String _videoUri){ 
     Log.i(TAG,"URI is : "+Uri.parse(_videoUri).toString()); 
     MediaController mc = new MediaController(VideoPlayer.this); 
     mVideoView.setMediaController(mc); 
     mVideoView.setVideoURI(Uri.parse(_videoUri)); 
     mVideoView.requestFocus(); 
     mVideoView.start(); 
    } 
+1

runOnUiThread(Runnableアクション)を使用してplay()メソッド呼び出しをラップしてみてください。 – yorkw

+0

@yorkwありがとう、それはうまくいきましたが、今度はprogressDialogが正しい時刻に呼び出されません。ビデオがロードされた後に表示されます。 – Fabii

答えて

0

括弧内に匿名スレッドを入れてみてください。 (new Thread(){start})start()

+0

カッコはここでは関係ありません – waqaslam

関連する問題