0

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

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

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

我的档案

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

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

4

3 回答 3

1

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

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

如果您在 Visual Studio 中转到媒体文件的属性并将 Build Action 设置为Content,并将 Copy to Output Directory 设置为Copy if newer,那应该可以解决问题。我尝试使用您提到的 pack 语法,但如果这些媒体文件将在构建时复制到可执行文件旁边的子文件夹中,那么简单的相对路径应该可以解决问题。

于 2013-07-13T08:14:49.607 回答
1

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

uri = new Uri(@"pack://application:,,,/Resources/22.wav", UriKind.RelativeOrAbsolute);
于 2013-07-13T08:15:41.840 回答
0

我还不知道包,但是您链接的文档表明您应该有pack://前缀,然后是权限(这将是application:///因为您的文件在您的资源中,但正如注释所解释的那样///替换,,,为),以便您的 URI 将形式为:

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

试试看它是否有效。

于 2013-07-13T08:16:05.410 回答