2013-07-13 51 views
0

我想播放媒体元素(不是我在这里问一个全局问题)。 我有我想玩媒体元素的资源文件,但它的源需要一个URI例如C#如何达到wpf中的资源

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

现在我没有22.wav的路径,但在我的“资源”

My File

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

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

+4

Sabrina Vaz是一位幸运儿。 –

+0

你给出的链接表明了一切,那么问题是什么?你是否将.wav文件的属性更改为资源?只是将URI更改为新的URI(@“/ Resources/22.wav”)' –

+0

没有抱歉,它不工作我运行时,如果使用您的代码erorr h​​ttp://s12.postimg.org/5fo1390bh/Sabrina_178 .jpg –

回答

1

一些试验和错误之后,我能够得到以下工作:

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

如果你去你的媒体文件的Visual Studio中的属性和生成操作设置为Content,并复制到输出目录到Copy if newer,这应该做的伎俩。我尝试过使用你提到的包语法,但是如果这些媒体文件将被复制到一个子文件夹旁边的可执行文件,一个简单的相对路径应该能够做到。

1

确保生成操作将其设置为资源和使用下面的代码

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

我不知道包还没有,但你链接的文件表明,你应该有pack://前缀,然后一个权威人士(这将是application:///,因为您的文件在您的资源中,但///将替换为,,,,如说明所解释的),以便您的URI的格式如下:

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

试试看看它是否有效。