How play a .mp3 (or other) file in a UWP app?

点点圈 提交于 2019-11-30 19:11:49

Every Windows Store App has three folders. A Local folder, a Roaming folder and a Temp folder. Each is accessed the same way. Local is meant to store assets in a local, application-specific folder.

Here is the answer:

StorageFolder Folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
                Folder = await Folder.GetFolderAsync("MyFolder");
                StorageFile sf = await Folder.GetFileAsync("MyFile.mp3");
                PlayMusic.SetSource(await sf.OpenAsync(FileAccessMode.Read), sf.ContentType);
                PlayMusic.Play();

MfG.

O.O

You cannot just read any file on your file system like this with windows store applications.

If you just want to test it:

  1. Add the file to your project in Visual Studio
  2. Change your file’s "Build Action" to "Content".
  3. Change "Copy to Output Directory" to "Copy Always".

What you probably want to do is explained in the section, Read Local files w/o a Picker from this article. This might also be helpful.

Put mySong.mp3 in your Assets folder. Then in Visual Studio, right click on your Assets folder and select "add existing item". Add mySong.mp3 FROM your Assets folder. In XAML, add a player:

 <MediaElement x:Name="myPlayer"
 AutoPlay="True" />

In c#, mySong.mp3 will play when you set the source:

 Uri newuri = new Uri("ms-appx:///Assets/mySong.mp3");
 myPlayer.Source = newuri;

Register the MediaFailed-Event of the MediaElement and check if it gets raised. The ExceptionRoutedEventArgs passed to the method, should contain information about, why the file cannot be played.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!