如何在UWP应用程序中播放.mp3(或其他)文件?

10

我尝试这样做:

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();

显示屏上不再出现错误消息(try catch顺利运行通过)。

很抱歉描述比较简短... 我能够理解和阅读英语,但是说和写却有些困难。


尝试将长文件名用单引号括起来,或者将文件重命名为无空格的名称,看看是否可以正常工作。 - MethodMan
no change by this means. :/ - Paule Paul
1
C:\Users\UserName\Desktop\C:\Users\paulk\Desktop\Kill The Alarm - Begin Again.mp3 不是一个有效的路径,您重复了子字符串到您的桌面文件夹中。 - Dai
4个回答

13

每个Windows Store应用程序都有三个文件夹。一个是本地文件夹,一个是漫游文件夹,还有一个临时文件夹。它们的访问方式相同。Local文件夹用于将资产存储在本地、特定于应用程序的文件夹中。

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();

敬礼。


4

在Windows存储应用程序中,不能像这样直接读取文件系统上的任何文件。

如果你只是想测试一下:

  1. 将文件添加到Visual Studio中的项目中
  2. 将文件的“生成操作”更改为“内容”。
  3. 将“复制到输出目录”更改为“始终复制”。

你可能想做的是在此文章无选取器情况下读取本地文件部分中有所解释。 这篇文章也可能有所帮助。


耶!太感谢了!我做到了!(我把解决方案发布为答案!) - Paule Paul

3
将 mySong.mp3 放入您的 Assets 文件夹中。然后在 Visual Studio 中,右键单击您的 Assets 文件夹,并选择“添加现有项”。从您的 Assets 文件夹中添加 mySong.mp3。 在 XAML 中添加一个播放器:
 <MediaElement x:Name="myPlayer"
 AutoPlay="True" />

在c#中,当你设置源时,mySong.mp3 将会被播放:

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

0

注册MediaElement的MediaFailed事件并检查它是否被触发。传递给方法的ExceptionRoutedEventArgs应包含有关为何无法播放文件的信息。


尝试将音频文件包含在您的解决方案中,然后更改URI。 - Dimitris Batsougiannis
PlayMusic.Source = new Uri(@"ms-appx://Sleep/Media/KillTheAlarm.mp3"); - Paule Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接