MediaElement的来源

时间:2016-03-16 10:44:51

标签: c# xamarin win-universal-app

当我点击按钮时,我正在尝试播放声音文件。该文件位于Assets文件夹中,构建操作设置为content。我尝试了以下方法:

选项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模板进行跨平台开发。所以我有以下结构:

  • App(PCL)
  • App.Droid
  • App.iOS
  • App.UWP
  • App.WinPhone

使用DependencyService我尝试在每个平台上播放声音,但使用App.UWP选项1不起作用。

1 个答案:

答案 0 :(得分:0)

你可以这样试试

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