2011-02-07 20 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/ –

उत्तर

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 पर विचार करने का सुझाव दूंगा, यह आदर्श रूप से वीडियो प्री-लोडिंग करने के लिए उपयुक्त लगता है। यह आपको लोड होने के दौरान अपने यूआई थ्रेड को स्थिर रखने की अनुमति देगा। AsyncTask विधि here का उपयोग करने का एक उदाहरण है।

एक प्रगति संवाद जोड़ने के लिए:

  • AsyncTask का ही विस्तार वर्ग के हिस्से के रूप में एक निजी ProgressDialog वस्तु बनाएँ।
  • onPreExecute() विधि आप प्रगति संवाद अप जैसे की स्थापना, प्रदर्शन कर सकते हैं में: pd.setMessage(...) pd.setTitle(...) pd.show(...)
  • onPostExecute(...) विधि में, संवाद निरस्त: pd.dismiss();

साथ ही, आप का उपयोग कर प्रगति संवाद अद्यतन कर सकते हैं अपने incrementProgressBy(...) विधि, या वैकल्पिक रूप से setIndeterminate(...) विधि का उपयोग कर लूपिंग एनीमेशन है। लोड की गई प्रगति की उपयोगकर्ता प्रतिक्रिया देना यूआई डिज़ाइन में एक अच्छा विचार है :)

मुझे उम्मीद है कि इससे मदद मिलती है!

8

इस मामले में IMHO खेलने के लिए तैयार है प्रगति संवाद का इंस्टीट्यूट प्रोग्रेसबार विजेट का उपयोग करने के लिए खूबसूरत अयस्क। यह वीडियो की सतह पर बेहतर दिखता है। आप VideoView ऊपर अपनी गतिविधि के लेआउट प्रगति बार जोड़ सकते हैं:

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

onPrepared कॉलबैक में छिपाने के प्रगति:

mProgress.setVisibility(View.INVISIBLE); 

<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 कॉल करने से पहले, प्रगति दिखाने

संबंधित मुद्दे