C# MediaElement的来源

C# MediaElement的来源,c#,xamarin,win-universal-app,C#,Xamarin,Win Universal App,当我点击一个按钮时,我正试图播放一个声音文件。该文件位于“资源”文件夹中,生成操作设置为“内容”。我尝试了以下方法: 备选案文1: element.Source = new Uri("ms-appx:///Assets/alarm.wav"); 备选案文2: Windows.Storage.StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync(

当我点击一个按钮时,我正试图播放一个声音文件。该文件位于“资源”文件夹中,生成操作设置为“内容”。我尝试了以下方法:

备选案文1:

element.Source = new Uri("ms-appx:///Assets/alarm.wav");
备选案文2:

Windows.Storage.StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets");
Windows.Storage.StorageFile file = await folder.GetFileAsync("alarm.wav");
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
element.SetSource(stream, file.ContentType);
第二个选项起作用,但当我点击按钮时,声音播放需要很长时间。根据其他问题,第一个选项应该有效,但声音不会播放,也没有例外

有什么建议吗

编辑:

我正在使用Xamarin模板进行跨平台开发。因此,我有以下结构:

  • 应用程序(PCL)
  • 机器人
  • App.iOS
  • App.UWP
  • App.WinPhone
使用DependencyService,我尝试在每个平台上播放声音,但使用App.UWP选项1不起作用。

您可以这样尝试

 Uri uri = new Uri(AppDomain.CurrentDomain.BaseDirectory + "Assets/alarm.wav");
                var player = new MediaPlayer();
                player.Open(uri);
                player.Play();

找不到AppDomain。我需要什么参考?它将在系统名称空间中。我使用系统时有
,但仍然找不到它。根据问题,这在UWP上是不可能的,因为它使用.netcore哦,好的。。我不知道.Net核心规范。在尝试第一个选项时,是否将音频文件添加到应用程序包中?如何检查?它在Assets文件夹中,构建操作是Content。我用.wav媒体文件和按钮单击事件测试了选项1,在我这边效果很好。我在问题中添加了项目结构。我用于URI的路径/方案是否不正确?我不熟悉Xamarin,但在我看来,选项2中的路径与选项1中的路径相同。你确定你的文件在App.UWP项目的资产文件夹中吗?是的,我查过了。如果不是这样,选项2也不起作用。