C# 中的媒体播放器
本文关键字:媒体播放器 | 更新日期: 2023-09-27 18:31:39
好吧,我正在使用System.Media.SoundPlayer
类在C#中制作媒体播放器,但是有太多的限制,例如它只能播放.wav
文件并且没有音量控制,也没有media-progessbar
。那么有没有更好的内置类或自定义类。 如果有,请指定。或者即使有任何东西可以与之并行。
您可以将 WPF MediaElement 用作成熟的音频和视频播放器。
它非常容易处理,并或多或少地带来了Windows 媒体播放器具有的所有功能。如果使用 Windows 窗体,则可以轻松地嵌入 WPF 控件。
我的选择的唯一缺点是它需要安装Windows 媒体播放器。
有很多例子。而且您没有提供足够的信息。我认为这些可能会帮助您开始
http://bitsandbinaries.wordpress.com/net-programming/wpfwindows-presentation-foundation/a-simple-media-player-program-in-c-net-4-0/
http://www.codeproject.com/Articles/2632/DirectShow-MediaPlayer-in-C
您可以使用Windows Media Player控件。MSDN 上显示了一个示例。
private void PlayFile(String url)
{
Player = new WMPLib.WindowsMediaPlayer();
Player.URL = url;
Player.controls.play();
}
如果您想更好地控制播放,并且不想将自己绑定到 WMP,您可以考虑使用 NAudio 这是一个开源媒体库。
如果您使用工具箱中提供的 MediaElement,则不必担心文件扩展名。
这里有一个可以帮助您的代码片段:
private void button4_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.AddExtension = true;
ofd.DefaultExt = "*.*";
ofd.Filter = "Media(*.*)|*.*";
ofd.ShowDialog();
mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1_MediaOpened);
mediaElement1.Source = new Uri(ofd.FileName);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
mediaElement1.Play();
}
private void button3_Click(object sender, RoutedEventArgs e)
{
mediaElement1.Stop();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
mediaElement1.Pause();
}
有关更多详细信息,请参阅:http://bitsandbinaries.wordpress.com/net-programming/wpfwindows-presentation-foundation/a-simple-media-player-program-in-c-net-4-0/
如果需要更多控制,请使用 NAudio (http://naudio.codeplex.com/) 或 SharpDX (http://sharpdx.org/)。 使用SharpDX,我构建了一个媒体播放器,可以驱动多个声卡(用于不同的区域),并具有平滑的淡出功能,用于终止的歌曲播放,闪避通知等。