使用轨迹栏控制时间

用户名

我正在WPF中构建音乐播放器,我将为当前播放的轨道添加一个轨迹栏,并且我将使用调度程序计时器在轨迹栏的左侧添加运行时长

0:45 ---------- | ---------------------------- 3:13

我希望左侧的时间根据用户向左或向右拖动到轨迹栏中的时间而改变。

检查iTunes。

谁能帮我?谢谢!

谢里登

假设您正在使用MediaPlayer元素,则可以使用该MediaPlayer.Position属性来通知您其当前的播放位置。您将需要使用DispatcherTimer来更新属性,该属性是绑定到显示当前播放位置的UI元素的数据。为了使它起作用,您还需要将Slider.Maximum属性设置为正确的值。这是一个基本示例:

在后面的代码中:

private void InitialiseMediaPlayer()
{
    mediaPlayer = new MediaPlayer();
    mediaPlayer.MediaOpened += MediaPlayer_MediaOpened;
    mediaPlayer.Open(new Uri(SomeFilePath, UriKind.Absolute));
}

private void MediaPlayer_MediaOpened(object sender, EventArgs e)
{
    if (mediaPlayer.NaturalDuration.HasTimeSpan)
    {
        SliderMaximum = mediaPlayer.NaturalDuration.TimeSpan.TotalSeconds;
        mediaPlayerTimer = new DispatcherTimer();
        mediaPlayerTimer.Interval = TimeSpan.FromMilliseconds(1000);
        mediaPlayerTimer.Tick += MediaPlayerTimer_Tick;
        mediaPlayerTimer.Start();
        mediaPlayer.Play();
    }
}

private void MediaPlayerTimer_Tick(object sender, EventArgs e)
{
    Position = mediaPlayer.Position.TotalSeconds;
    Time = mediaPlayer.Position;
}

在XAML中:

<Slider Grid.Column="1" Value="{Binding Position, FallbackValue=0}" Maximum="{Binding 
    SliderMaximum, FallbackValue=0, Mode=OneWay}" Minimum="0" Margin="5,0" 
    VerticalAlignment="Center" />
<TextBlock Grid.Column="2" Text="{Binding Time, StringFormat={}{0:hh}:{0:mm}:{0:ss}, 
    FallbackValue=00:00:00, Mode=OneWay}" VerticalAlignment="Center" />

在此处输入图片说明

您可能还需要Position将以下行添加到属性设置器中:

mediaPlayer.Position = TimeSpan.FromSeconds(position);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用轨迹栏更改日期和时间

来自分类Dev

使用轨迹栏的HoughLinesP

来自分类Dev

C#-使用计时器和轨迹栏逐渐填充矩形以控制速度

来自分类Dev

如何使用Java API在opencv中创建轨迹栏

来自分类Dev

如何使用Gekko离散时间进行轨迹优化

来自分类Dev

在opencv中对齐轨迹栏

来自分类Dev

如何在C#中使用语音识别滚动轨迹栏

来自分类Dev

使用Opencv关闭python代码后如何保存轨迹栏值?

来自分类Dev

使用MATLAB显示轨迹

来自分类Dev

使用MATLAB显示轨迹

来自分类Dev

使用DIDO为遵循轨迹的系统找到时间最佳解决方案

来自分类Dev

轨迹栏鼠标移动事件的奇怪行为

来自分类Dev

c#在轨迹栏上禁用ScrollWheel

来自分类Dev

轨迹栏鼠标移动事件的奇怪行为

来自分类Dev

通过轨迹栏设置BackColor RGB值

来自分类Dev

轨迹栏中的最大值

来自分类Dev

opencv(python)中图片形态的轨迹栏

来自分类Dev

在delphi中自动增加轨迹栏的过程

来自分类Dev

opencv 轨迹栏没有显示

来自分类Dev

自定义轨迹栏刻度

来自分类Dev

使用PSPDF控制导航栏色彩

来自分类Dev

Matplotlib 时间序列图轨迹问题

来自分类Dev

如何使用搜索栏设置时间范围

来自分类Dev

使用Highcharts的XY轨迹图

来自分类Dev

使用随机轨迹的 NuSMV 模拟

来自分类Dev

如何在three.js(r66)中旋转对象而不使用控制相机的轨迹球

来自分类Dev

为什么我的轨迹栏的值始终为-1

来自分类Dev

创建轨迹栏以更改图像OpenCV的亮度

来自分类Dev

将轨迹栏值转换为双精度