2013-06-06 63 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