问题
I try this:
PlayMusic = new MediaElement();
PlayMusic.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.Media;
PlayMusic.Source = new Uri(@"C:\Users\UserName\Desktop\C:\Users\user\Desktop\Kill The Alarm - Begin Again.mp3");
PlayMusic.Play();
No more error messages appear on the display (try catch runs clean through).
Sorry for the short description... I can read and understand English very well but it is difficult for me to talk and write.
回答1:
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.
回答2:
You cannot just read any file on your file system like this with windows store applications.
If you just want to test it:
- Add the file to your project in Visual Studio
- Change your file’s "Build Action" to "Content".
- 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.
回答3:
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;
回答4:
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.
来源:https://stackoverflow.com/questions/32592841/how-play-a-mp3-or-other-file-in-a-uwp-app