c# - 使用 CrossSimpleAudioPlayer 播放声音 - Xamarin Forms
问题描述
最近我一直在尝试在 Xamarin Forms 中使用CrossSimpleAudioPlayer来播放.mp3文件,但我收到了这条消息
System.NullReferenceException:对象引用未设置为对象的实例。
我将属性 Build Action 更改为Embedded Resource,但我的错误仍然存在,我在这里缺少什么吗?
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();
}
解决方案
你的softAlarm.mp3
文件在哪里?您需要输入用点连接的完整路径,并以项目名称为前缀。
因此,如果您的文件位于Resources文件夹下名为SoftAlarm的项目中,您应该声明:GetManifestResourceStream("SoftAlarm.Resources.softAlarm.mp3");
声音文件应该在您的共享项目中并且具有构建操作Embedded Resource。
我在这里为您创建了一个工作示例项目:https ://github.com/jfversluis/CrossSimpleAudioPlayerSample
推荐阅读
- r - R:创建或删除给定值范围的行
- c - CS50 可读性结果问题
- git - Git 通过 BFG 哈希清除 lfs 对象?
- html - 在不推开相邻元素的情况下自动调整边距
- python-3.x - 如何使用opencv去除手写背景?
- python - 如何从已保存为字节数组的tdms文件中读取python中的labview双数组(展平为字符串,然后字符串为字节数组)
- pytorch - RuntimeError:输入类型(torch.cuda.FloatTensor)和权重类型(torch.FloatTensor)应该是一样的,但是我把模型和数据设置为cuda
- mysql - 如何在 SELECT 语句中即时更改编码?
- c++ - 使用编译时类型和运行时函数创建 std::tuple
- google-sheets - 谷歌表格公式根据匹配条件查找缺失的数字