1.在xaml文件中声明一个progressbar和一个textblock
<ProgressBar Name="Mp3Bar" Height="46" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="364" />
<TextBlock HorizontalAlignment="Left" Margin="364,0,0,0" TextWrapping="Wrap" Text="00:00/00:00" VerticalAlignment="Bottom" Height="46" Width="106" Name="timeText"/>
注:textBlock用来实现读取progressbar的总的值和当前值。
2.在cs文件中定义一个定时器。
DispatcherTimer currentPosition = new DispatcherTimer();用来确定当前的位置。
再在初始化函数中添加定时器的监听器。当定时器变化时,则,打开监听。
currentPosition.Tick += new EventHandler(currentPosition_Tick);
以一个Mp3文件为例,在监听事件中获取MP3文件的总的时间
值和定时器当前值。
void currentPosition_Tick(object sender, EventArgs e)
{
//获取当前视频播放了的时长来设置进度条的值
Mp3Bar.Value = (int)sound.Position.TotalMilliseconds;
string currentMin = (((int)sound.Position.TotalSeconds)/60).ToString().PadLeft(2,'0');
string currentSec = (((int)sound.Position.TotalSeconds)% 60).ToString().PadLeft(2,'0');
string currentTime = currentMin + ":" + currentSec;
string totalMin = (((int)sound.NaturalDuration.TimeSpan.TotalSeconds) / 60).ToString().PadLeft(2, '0');
string totalSec = (((int)sound.NaturalDuration.TimeSpan.TotalSeconds) % 60).ToString().PadLeft(2, '0');
string totalTime = totalMin + ":" + totalSec;
timeText.Text = currentTime + "/" + totalTime;
}
此时就将text的值置为