在WPF中使用MediaPlayer

时间:2018-03-05 01:12:38

标签: wpf

我尝试将媒体播放器添加到我的WPF应用程序中但没有任何声音。我添加了一个wav文件,如下所示。

//option 1
            string soundname = "test.Wav";
            MediaPlayer soundtrack = new MediaPlayer();
            soundtrack.Open(new Uri(@"pack://application:,,,/Assets/sounds/" + soundname));
            soundtrack.Play();

            //option 2
            MediaPlayer Sound1 = new MediaPlayer();
            Sound1.Open(new Uri(@"Assets/sounds/test.Wav"));
            Sound1.Play();

第一个选项(这是我真正想要的)不会使程序崩溃,但我听不到声音(不,计算机声音没有静音......)。我从MSDN获得的第二个崩溃了我的程序,说找不到该对象的实例。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您可以将您的wav文件属性上的Build Action设置为Content,将Copy to Output Directory设置为Copy Always,请尝试以下操作。

 MediaPlayer Sound1 = new MediaPlayer();
 Uri uri = new Uri(System.IO.Directory.GetCurrentDirectory() + @"\Assets\Sounds\test.wav", UriKind.Absolute);
 Sound1.Open(uri);
 Sound1.Play();

这将从应用程序目录中获取文件。

另请注意,如果在渲染完成之前尝试执行MediaPlayer,则会遇到问题。所以如果你在WPF中尝试这个,让我们说public MainWindow()它将无法播放。