C# C语言媒体播放器
我使用System.media.SoundPlayer类在C中制作了一个媒体播放器,但是有太多的限制,比如它只播放.wav文件,没有音量控制,也没有媒体进度条。那么有没有更好的内置类或自定义类呢。如果有,请说明。或者,即使有任何东西可以与它并行工作。您可以将WPF用作成熟的音频和视频播放器 它非常易于操作,并带来了Windows Media Player或多或少的所有功能。 如果使用Windows窗体,则可以轻松嵌入WPF控件 my optinion的唯一缺点是需要安装Windows Media Player。您可以使用。上显示了一个示例C# C语言媒体播放器,c#,winforms,soundplayer,C#,Winforms,Soundplayer,我使用System.media.SoundPlayer类在C中制作了一个媒体播放器,但是有太多的限制,比如它只播放.wav文件,没有音量控制,也没有媒体进度条。那么有没有更好的内置类或自定义类呢。如果有,请说明。或者,即使有任何东西可以与它并行工作。您可以将WPF用作成熟的音频和视频播放器 它非常易于操作,并带来了Windows Media Player或多或少的所有功能。 如果使用Windows窗体,则可以轻松嵌入WPF控件 my optinion的唯一缺点是需要安装Windows Media
如果你想更多地控制播放,又不想把自己和WMP捆绑在一起,你可以考虑使用开源媒体库。嘿,有这么多例子。你没有提供足够的信息。我想这些可能会帮助你开始
如果使用工具箱中可用的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();
}
有关更多详细信息,请参阅:如果需要更多控制,请使用NAudio或SharpDX。使用SharpDX,我构建了一个媒体播放器,可为不同区域驱动多个声卡,并可平滑淡出以播放终止的歌曲、躲避公告等。MediaElement具有更多功能此WinForm、WPF或其他应用程序类型?@keyboardP它是WinForm
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();
}