2013-06-06 61 views
0

我使用MediaElement播放Stream音樂,並通過DownloadProgress獲取該文件的下載百分比,但總是爲0或1.如何獲得文件的實際下載百分比。 感謝下載MediaElement的進度WPF

回答

0

DownloadProgress是0和1之間的百分比值所以,你有100 MSDN Documentation form DownloadProgress

+0

DownloadProgress是0和1.But DownloadProgress之間的百分比值不就是做下載文件的進度,DownloadProgress是下載包甚至mediaElement的進度得到它。我去得到文件的下載進度。 – Longit644

1

我認爲我們需要根據病情來手動增加進度欄的值相乘,這裏是代碼示例

//Create a Delegate that matches 
//the Signature of the ProgressBar's SetValue method 
private delegate void UpdateProgressBarDelegate(
     System.Windows.DependencyProperty dp, Object value); 


private void Process() 
{ 
    //Configure the ProgressBar 
    ProgressBar1.Minimum = 0; 
    ProgressBar1.Maximum = short.MaxValue; 
    ProgressBar1.Value = 0; 

    //Stores the value of the ProgressBar 
    double value = 0; 

    //Create a new instance of our ProgressBar Delegate that points 
    // to the ProgressBar's SetValue method. 
    UpdateProgressBarDelegate updatePbDelegate = 
     new UpdateProgressBarDelegate(ProgressBar1.SetValue); 

    //Tight Loop: Loop until the ProgressBar.Value reaches the max 
    do 
    { 
     value += 1; 

     /*Update the Value of the ProgressBar: 
      1) Pass the "updatePbDelegate" delegate 
       that points to the ProgressBar1.SetValue method 
      2) Set the DispatcherPriority to "Background" 
      3) Pass an Object() Array containing the property 
       to update (ProgressBar.ValueProperty) and the new value */ 
     Dispatcher.Invoke(updatePbDelegate, 
      System.Windows.Threading.DispatcherPriority.Background, 
      new object[] { ProgressBar.ValueProperty, value }); 
    } 
    while (ProgressBar1.Value != ProgressBar1.Maximum); 
} 

,這裏是完整的enter link description here