我是Windows Phone开发的新手,我正在尝试做一个简单的培训应用程序。
我希望我的应用加载一些我放入项目内部文件夹的音频文件。
这是一个简短的片段:
private void LoadSound(String SoundFilePath, out SoundEffect Sound)
{
// For error checking, assume we'll fail to load the file.
Sound = null;
try
{
// Holds informations about a file stream.
StreamResourceInfo SoundFileInfo = Application.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative));
我的文件夹结构类似于
- Project
- Kits
- TestKit_128
- Bass_126.wav
并致电
Button.setSound("Kits\\TestKit_128\\bass_126.wav");
抛出System.NullReferenceException
,因为在创建URI时找不到路径。 (至少我是这么认为的!)
我该怎么办?
有没有办法从项目中的文件夹加载文件,或者在我第一次运行应用程序时将它们复制到IsolatedStorage中?
由于
编辑:
我刚刚用WinRar打开了XAP文件,并且没有“Kits”文件夹,所以我想我的问题是如何让它将文件夹添加到XAP文件中。
答案 0 :(得分:0)
您是否将wav文件的构建操作设置为“内容”?右键单击WAV文件 - >属性 - >构建动作==内容。
答案 1 :(得分:0)
我认为您必须将文件夹和文件添加到项目中(我假设您使用的是Visual Studio)。尝试右键单击您的解决方案并添加现有对象(在本例中为您的wav文件)。
答案 2 :(得分:0)
试试这个:
Uri uri = new Uri("Kits/TestKit_128/bass_126.wav", UriKind.Relative);//Above the Kits folder only the project itself.
StreamResourceInfo sr = Application.GetResourceStream(uri);
try
{
using (Stream stream = sr.Stream)
{
//working here with your data image or wav or whatever you want from URI
}
}
catch (Exception)
{
}
这适用于项目内的资源,对我有用。关于“内容”的prevoius注释也是正确的,如果没有它,它将无法工作。我认为问题是地址中的双斜线。