使用CrossSimpleAudioPlayer播放声音-Xamarin Forms

时间:2018-07-02 17:14:33

标签: c# xamarin xamarin.forms cross-platform

最近我一直在尝试在Xamarin Forms中使用 CrossSimpleAudioPlayer 播放 .mp3 文件,但是我收到此消息

  

System.NullReferenceException:对象引用未设置为对象的实例。

我将Build Action属性更改为 Embedded Resource ,但是我的错误仍然存​​在,我在这里缺少什么吗?

这是我的参考文献https://blog.xamarin.com/adding-sound-xamarin-forms-app/?utm_medium=social&utm_campaign=blog&utm_source=linkedin&utm_content=simpleaudioplayer-nuget,这是我的代码:

public void Play() {
  var assembly = typeof(App).GetTypeInfo().Assembly;
  Stream audioStream = assembly.GetManifestResourceStream("softAlarm." + "softAlarm.mp3");
  var audio = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
  audio.Load(audioStream);

  audio.Play();
}

1 个答案:

答案 0 :(得分:4)

您的softAlarm.mp3文件在哪里?您需要输入由点名连接的完整路径,并以您的项目名称作为前缀。

因此,如果文件位于 Resources 文件夹下的 SoftAlarm 项目中,则应声明:GetManifestResourceStream("SoftAlarm.Resources.softAlarm.mp3");

声音文件应该位于您的共享项目中,并且具有构建操作嵌入式资源

我在这里为您创建了一个工作示例项目:https://github.com/jfversluis/CrossSimpleAudioPlayerSample