2011-02-07 120 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); 
相关问题