2011-02-07 124 views
7

我想在播放視頻之前顯示進度對話框。我嘗試下面的鏈接示例播放視頻。如何在播放視頻之前顯示進度條

http://davanum.wordpress.com/2009/12/04/android-%E2%80%93-videomusic-player-sample-take-2/

它的工作原理,但它需要更多的時間來採取播放視頻,所以我想顯示進度對話框前啓動視頻。所以請告訴我如何在播放視頻前顯示進度對話框。

謝謝。

最好的問候。

+0

這裏更好的方法http://www.quicktips.in/how-to-show-progressbar-while-loading-a-video-in-android-videoview/ – 2016-01-05 03:40:46

回答

18

首先,聲明進度對話框

private static ProgressDialog progressDialog; 

然後,在的onCreate,呼籲runOnUiThread之前,啓動對話

progressDialog = ProgressDialog.show(this, "", "Loading...", true); 

在調用playVideo,設置OnPreparedListener,將關閉該對話框當視頻準備玩

mVideoView.setOnPreparedListener(new OnPreparedListener() { 

    public void onPrepared(MediaPlayer arg0) { 
     progressDialog.dismiss(); 
     mVideoView.start(); 
    } 
}); 
2

我會建議看看AsyncTask documentation,這似乎非常適合做視頻預加載。這將允許您在加載期間保持UI線程穩定。有一個使用AsyncTask方法here的示例。

要添加一個進度對話框:

  • 創建私人ProgressDialog 對象的AsyncTask的擴展類 的一部分。
  • onPreExecute()方法,你可以執行進度對話框中設置 起來,如: pd.setMessage(...) pd.setTitle(...) pd.show(...)
  • onPostExecute(...)方法,關閉該對話框:pd.dismiss();

此外,還可以使用更新的進度對話框其incrementProgressBy(...)方法,或者使用setIndeterminate(...)方法交替使用循環動畫​​。給用戶反饋的加載進度是一個好主意在UI設計:)

我希望這可以幫助!

8

恕我直言,在這種情況下,它是米優雅地使用ProgressBar小工具進度對話框。它在視頻表面上看起來更好。您可以在進度欄添加到您的活動的佈局VideoView以上:

<ProgressBar 
    android:id="@+id/progress" 
    android:indeterminate="true" 
    android:indeterminateBehavior="repeat" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_gravity="center"> 
</ProgressBar> 

在的onCreate,呼籲runOnUiThread之前,顯示進度:

mProgress = (ProgressBar)findViewById(R.id.progress); 
mProgress.setVisibility(View.VISIBLE); 

在onPrepared回調隱藏進度:

mProgress.setVisibility(View.INVISIBLE); 
相關問題