gpt4 book ai didi

C# winform,如何使轨迹条随着声音文件移动(增加其值)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:59 24 4
gpt4 key购买 nike

在我的表格中,我有一个小型媒体播放器,它非常基本,具有基本的功能嵌套、上一个、播放、停止、音量增加和轨迹栏。我可以通过这段代码拖动轨道栏来寻找这首歌::(假设轨迹条的最大值为声音文件的总秒数)

private void SeekBar_Scroll(object sender, EventArgs e)
{
Player.Position = TimeSpan.FromSeconds(SeekBar.Value);
}

但是我无法在播放音乐时让酒吧自己向前移动..我想出了这个主意:

假设我们有一首时长 90 秒的歌曲。现在轨迹栏最大值为 100所以:100 --> 90 1 --> XX = 0.9 秒这是条形刻度与轨道条值在每个刻度中应增加的值之间的间隔。这是我的代码:

while (SeekBar.Value < 100)
{
System.Windows.Duration duration = Player.NaturalDuration;
SeekBar.Value += duration.TimeSpan.Seconds / 100;
Thread.Sleep(duration.TimeSpan.Seconds * 10);
}

现在我认为这应该在一个单独的线程中运行,对吗?但问题是,当我这样做时,我收到一条烦人的消息,说 TrackBar 正在一个线程中使用,而不是在创建它的线程中使用..我该如何解决这个问题?

我想将这段代码同时放在 MouseLeaveMouseEnter 事件中,但这毫无意义,因为它会在同一个线程上,应用程序会卡住。

如何让条形图自己移动?

最佳答案

您应该创建一个具有间隔或 1,000 毫秒的 WinForms Timer,并在其 Tick 事件中更新轨迹栏。

关于C# winform,如何使轨迹条随着声音文件移动(增加其值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com