0

好吧,我正在使用System.Media.SoundPlayer该类在 C# 中制作媒体播放器,但是有太多限制,例如它只能播放.wav文件,并且没有音量控制,也没有media-progessbar. 那么有没有更好的内置类或自定义类。如果有请说明。或者即使有任何东西可以与之并行工作。

4

5 回答 5

3

您可以将 WPF MediaElement用作成熟的音频和视频播放器。

它非常易于处理,并且或多或少地带来了 Windows Media Player 的所有功能。如果您使用 Windows 窗体,则可以轻松嵌入 WPF 控件。

我选择的唯一缺点是它需要安装 Windows Media Player。

于 2013-09-17T09:52:45.723 回答
2

嘿,例子太多了。而且您没有提供足够的信息。我想这些可能会帮助你开始

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

于 2013-09-17T09:56:46.027 回答
1

您可以使用Windows Media Player 控件MSDN上显示了一个示例。

private void PlayFile(String url)
{
    Player = new WMPLib.WindowsMediaPlayer();

    Player.URL = url;
    Player.controls.play();
}

如果您想要更多地控制播放,并且不想将自己绑定到 WMP,您可以考虑使用NAudio,它是一个开源媒体库。

于 2013-09-17T09:54:12.330 回答
1

如果您使用工具箱中提供的 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/

于 2013-09-24T15:54:01.530 回答
1

如果您想要更多控制,请使用 NAudio ( http://naudio.codeplex.com/ ) 或 SharpDX ( http://sharpdx.org/ )。使用 SharpDX,我构建了一个媒体播放器,它可以驱动多个声卡(用于不同的区域),具有平滑的淡出功能,用于终止歌曲播放、闪避用于公告等。

于 2013-09-24T16:00:53.957 回答