C#如何在wpf中获取资源

时间:2013-07-13 07:18:53

标签: c# wpf

我想播放媒体元素(不是我在这里问一个全球性的问题)。 我有一个媒体元素的资源文件,我想玩,但它的源需要一个URI,例如

mediaElement1.Source = new Uri(@"c:\users\SabrinaVazIsFuckingGod\video\22.wav");

现在我没有22.wav作为路径,而是在我的“资源”

My File

我从搜索中发现一些程序员正在谈论包 但我不知道如何使用它们, 所以,如果您知道如何,并且可以解释我甚至更好地给我示例代码,我将不胜感激。

感谢那些已经回答的人,但他们没有回答我的问题,我想把我的媒体文件放在exe中,而不是在任何其他地方。

3 个答案:

答案 0 :(得分:1)

经过一些反复试验,我能够得到以下信息:

MyMediaElement.LoadedBehavior = MediaState.Play;
MyMediaElement.Source = new Uri(@"Resources\AudioFile.mp3", UriKind.Relative);

如果您在Visual Studio中转到媒体文件的属性,并将构建操作设置为Content,并将复制到输出目录设置为Copy if newer,那应该可以解决问题。我尝试使用你提到的包语法,但是如果要将这些媒体文件复制到可执行文件旁边的子文件夹中,那么一个简单的相对路径应该可以解决问题。

答案 1 :(得分:1)

确保构建操作设置为资源并使用以下代码

uri = new Uri(@"pack://application:,,,/Resources/22.wav", UriKind.RelativeOrAbsolute);

答案 2 :(得分:0)

我还不知道软件包,但您链接的文档表明您应该有pack://前缀,然后是权限(因为您的文件在资源中是application:///,但是///替换为,,,,如说明所示),以便您的URI格式为:

new URI(@"pack://application:,,,/Resources/22.wav")

试一试,看看它是否有效。