コード例 #1
0
        private async void UpdatePosition(object sender, EventArgs e)
        {
            var downloaded = media.GetMediaInfo(file).Duration.TotalSeconds *downloader.Status.Progress;
            var seconds    = Player.MediaPosition / 10000000;

            TimeLine.Maximum   = downloaded;
            TimeLine.Value     = seconds;
            DownloadSpeed.Text = GetSpeed(downloader.Status.DownloadRate);
            UploadSpeed.Text   = GetSpeed(downloader.Status.UploadRate);
            SetValue(downloader.Status.Progress);
            CurrentTime.Text = GetTime(seconds) + "/" + GetTime((float)downloaded);
            if (seconds >= downloaded - 5)
            {
                Player.Pause();
                Middle.Visibility = Visibility.Visible;
                Middle.BeginStoryboard((Storyboard)FindResource("OpacityUp"));
                while ((media.GetMediaInfo(file).Duration.TotalSeconds *downloader.Status.Progress) - 10 > seconds)
                {
                    Animate();
                    await Task.Delay(1080);
                }
                var sb    = (Storyboard)FindResource("OpacityDown");
                var clone = sb.Clone();
                clone.Completed += (s, ev) => {
                    Middle.Visibility = Visibility.Collapsed;
                };
                sb.Begin(Middle);
                Player.Play();
            }
        }