Windows runtime 如何播放存储在Windows Phone 8.1解决方案中的mp3文件?

Windows runtime 如何播放存储在Windows Phone 8.1解决方案中的mp3文件?,windows-runtime,windows-phone-8.1,Windows Runtime,Windows Phone 8.1,我的解决方案中存储了许多mp3文件 /Resources/mp3Files/ 在Windows Phone 8中,我可以通过以下方式播放这些内容: var name = track.Item1; var uri = new Uri("/Resources/mp3Files/sound.mp3", UriKind.Relative); var song = Song.FromUri(name, uri); FrameworkDispatcher.Update(); MediaPlayer.P

我的解决方案中存储了许多mp3文件

/Resources/mp3Files/
在Windows Phone 8中,我可以通过以下方式播放这些内容:

var name = track.Item1;
var uri = new Uri("/Resources/mp3Files/sound.mp3", UriKind.Relative);

var song = Song.FromUri(name, uri);

FrameworkDispatcher.Update();
MediaPlayer.Play(song);
但是,在WindowsPhone8.1中,这不起作用


要播放存储在解决方案中的mp3文件,我需要做什么?

您需要在Windows 8.1中使用MediaElement:

播放音乐文件夹中存储的文件中的音频

var audioFile = await KnownFolders.MusicLibrary.GetFileAsync("/Resources/mp3Files/sound.mp3");

var stream = await audioFile.OpenAsync(Windows.Storage.FileAccessMode.Read);

mediaplayer.SetSource(stream, audioFile.ContentType);

请看一个完整的示例:

您需要在Windows 8.1中使用MediaElement:

播放音乐文件夹中存储的文件中的音频

var audioFile = await KnownFolders.MusicLibrary.GetFileAsync("/Resources/mp3Files/sound.mp3");

var stream = await audioFile.OpenAsync(Windows.Storage.FileAccessMode.Read);

mediaplayer.SetSource(stream, audioFile.ContentType);

请看一个完整的示例:

以下是如何使用“构建操作”内容在解决方案中嵌入的WP8.0中打开文件:

Dim fs As IO.FileStream = IO.File.OpenRead("MyFolder/MyFile.txt")
以下是在WP8.1 Win RT中的实现方式:

Dim fs As System.IO.Stream = Await Windows.ApplicationModel.Package.Current.InstalledLocation.OpenStreamForReadAsync("MyFolder\MyFile.txt")

请注意“/”如何更改为“\”

以下是在WP8.0中使用“构建操作”内容打开嵌入解决方案的文件的方式:

Dim fs As IO.FileStream = IO.File.OpenRead("MyFolder/MyFile.txt")
以下是在WP8.1 Win RT中的实现方式:

Dim fs As System.IO.Stream = Await Windows.ApplicationModel.Package.Current.InstalledLocation.OpenStreamForReadAsync("MyFolder\MyFile.txt")
注意“/”如何变为“\”

这就是工作原理:

// get folder app is installed to
var installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

// get folders mp3 files are installed to.
var resourcesFolder = await installFolder.GetFolderAsync("Resources");
var mp3FilesFolder = await resourcesFolder.GetFolderAsync("mp3Files");

// open the mp3 file async
var audioFile = await mp3FilesFolder.GetFileAsync("sound.mp3");
var stream = await audioFile.OpenAsync(Windows.Storage.FileAccessMode.Read);

// play dat funky music
MediaElement mediaplayer = new MediaElement();
mediaplayer.SetSource(stream, audioFile.ContentType);
mediaplayer.Play();
这就是成功的原因:

// get folder app is installed to
var installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

// get folders mp3 files are installed to.
var resourcesFolder = await installFolder.GetFolderAsync("Resources");
var mp3FilesFolder = await resourcesFolder.GetFolderAsync("mp3Files");

// open the mp3 file async
var audioFile = await mp3FilesFolder.GetFileAsync("sound.mp3");
var stream = await audioFile.OpenAsync(Windows.Storage.FileAccessMode.Read);

// play dat funky music
MediaElement mediaplayer = new MediaElement();
mediaplayer.SetSource(stream, audioFile.ContentType);
mediaplayer.Play();

这看起来很有希望,但它给了我一个
UnauthorizedAccessException
Hmm。尝试将mp3文件放在其他地方,例如在你的音乐库中。我想我需要为UnauthorizedAccessException授予权限,但现在是另一个问题,一个System.ArgumentException。星期一我会继续干下去,因为我现在已经干完了——呜呜,啤酒!这看起来很有希望,但它给了我一个
UnauthorizedAccessException
Hmm。尝试将mp3文件放在其他地方,例如在你的音乐库中。我想我需要为UnauthorizedAccessException授予权限,但现在是另一个问题,一个System.ArgumentException。星期一我会继续干下去,因为我现在已经干完了——呜呜,啤酒!您有音乐播放器的参考资料或样品吗?您有音乐播放器的参考资料或样品吗?