我如何在媒体播放器中使用包uri资源?

我有一些非常简单的代码,只需要播放指定音量的声音,如下所示:

var mp = new MediaPlayer(); mp.Open(uri); mp.Volume = volume; mp.Play(); 

问题出现是因为这是Prism模块的一部分。 我不知道执行程序集将在哪里,所以我不能使用相对Uri或siteoforigin,MediaPlayer不理解包Uri语法。

我在程序集的根目录下有一个名为“notify.wav”的资源wav文件,但我无法通过Uri将其传递给MediaPlayer,并且无法通过任何其他方式加载它。

我该如何播放文件?

由于资源是嵌入式的,并且MediaPlayer不支持pack uri,因此您需要以流forms读取资源并将其写入文件。然后,您应该能够根据需要将文件加载到播放器中。

我会将文件写入我的应用程序目录,这样一旦从程序集中提取,您就可以直接引用该文件。

希望这可以帮助

首先,您应该为媒体文件夹的路径声明一个字符串变量。 该变量保存路径。 就像:

 string url = @"C:\Users\Alico\Documents\visual studio 2010\Projects\WpfBrushesTest\WpfBrushesTest\Dido - Thank You.mp4"; 

然后

 mp.Open(new Uri(url,UriKind.Relative)); 

我担心媒体播放器不支持包URI。

您是否尝试过Directory.GetCurrentDirectoryEnvironment.CurrentDirectory