Csharp/C#教程:WPF:实施MediaPlayer音频/video搜索器分享


WPF:实施MediaPlayer音频/video搜索器

我目前正在制作一个带有WPF MediaPlayer的MP3播放器(在WPF应用程序中),基本上,我想实现一个与当前播放歌曲一起移动的Song Seeker。

我已经实现了一个歌曲滑块(来自Sacha Barber的应用程序 ),当用户手动拖动导引头时(例如,歌曲从该位置继续),它可以工作但我无法弄清楚如何根据当前位置移动导引头这首歌曲。

麻烦的是我认为没有办法检查MediaPlayerPosition属性何时发生了变化,所以我对如何实现这个function感到难过。

关于如何解决这个问题的任何想法?

[更新]

关于使用计时器增加导引头的问题,我实际上想到了使用我没有尝试过的原因,因为我认为使用MediaTimeline有更好的方法来实现MediaTimeline ……但我还没弄清楚如何。

ARISE回答! 并为你的主人服务

好的,我已经想出了如何解决这个问题。 我确信我没有采用完全正确的方式,但它确实有效。

这是WPF应用程序的代码隐藏,带有暂停/播放按钮。

 public partial class Main : Window { MediaPlayer MPlayer; MediaTimeline MTimeline; public Main() { InitializeComponent(); var uri = new Uri("C:\Test.mp3"); MPlayer = new MediaPlayer(); MTimeline = new MediaTimeline(uri); MTimeline.CurrentTimeInvalidated += new EventHandler(MTimeline_CurrentTimeInvalidated); MPlayer.Clock = MTimeline.CreateClock(true) as MediaClock; MPlayer.Clock.Controller.Stop(); } void MTimeline_CurrentTimeInvalidated(object sender, EventArgs e) { Console.WriteLine(MPlayer.Clock.CurrentTime.Value.TotalSeconds); } private void btnPlayPause_Click(object sender, RoutedEventArgs e) { //Is Active if (MPlayer.Clock.CurrentState == ClockState.Active) { //Is Paused if (MPlayer.Clock.CurrentGlobalSpeed == 0.0) MPlayer.Clock.Controller.Resume(); else //Is Playing MPlayer.Clock.Controller.Pause(); } else if (MPlayer.Clock.CurrentState == ClockState.Stopped) //Is Stopped MPlayer.Clock.Controller.Begin(); } } 

诀窍是,一旦你设置了MediaPlayer的时钟,它就变成了时钟控制,因此使用MPlayer.Clock.Controller来做所有的控制:)

从未玩过媒体播放器,但假设您知道歌曲的长度,您可能无法设置在播放歌曲时每秒钟滴答的计时器。 因此,对于每个节拍,只需将寻道器与歌曲的总长度相关联。

歌曲长达100秒。 因此,每秒/刻度值占总进度的1%。

暂停歌曲等时你必须停止计时器…

MediaElement有一个位置属性,您可以使用它来: http : //msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.position.aspx

你有没有检查过WPF MediaKit ?

上述就是C#学习教程:WPF:实施MediaPlayer音频/video搜索器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016466.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐