C# 使用CrossSimpleAudioPlayer播放声音-Xamarin表单
最近我一直在尝试使用Xamarin表单中的CrossSimpleAudioPlayer来播放.mp3文件,但我收到了这条消息 System.NullReferenceException:对象引用未设置为对象的实例 我将属性构建操作更改为嵌入式资源,但我的错误仍然存在,这里缺少什么吗 这是我的参考,这是我的代码:C# 使用CrossSimpleAudioPlayer播放声音-Xamarin表单,c#,xamarin,xamarin.forms,cross-platform,C#,Xamarin,Xamarin.forms,Cross Platform,最近我一直在尝试使用Xamarin表单中的CrossSimpleAudioPlayer来播放.mp3文件,但我收到了这条消息 System.NullReferenceException:对象引用未设置为对象的实例 我将属性构建操作更改为嵌入式资源,但我的错误仍然存在,这里缺少什么吗 这是我的参考,这是我的代码: public void Play(){ var assembly=typeof(App).GetTypeInfo().assembly; Stream audioStream=asse
public void Play(){
var assembly=typeof(App).GetTypeInfo().assembly;
Stream audioStream=assembly.GetManifestResourceStream(“softAlarm.”+softAlarm.mp3”);
var audio=Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
音频加载(音频流);
音频播放();
}
您的softAlarm.mp3
文件在哪里?您需要输入以项目名称为前缀的点连接的完整路径
因此,如果您的文件位于Resources文件夹下名为SoftAlarm的项目中,您应该声明:GetManifestResourceStream(“SoftAlarm.Resources.SoftAlarm.mp3”)代码>
声音文件应位于共享项目中,并具有内置资源的构建操作
我在这里为您创建了一个工作示例项目:您的softAlarm.mp3
文件在哪里?您需要输入以项目名称为前缀的点连接的完整路径。因此,如果您的文件位于resources文件夹下名为SoftAlarm的项目中,您应该声明:GetManifestResourceStream(“SoftAlarm.resources.SoftAlarm.mp3”)
,那么您可能应该这样做:GetManifestResourceStream(“SoftAlarm.mp3”)
,因为操作系统会为您找到它。但这一点还不完全确定。您所指的链接还将音频文件放置在共享库中。这样你就不需要任何重复的文件:)所以我试着像。。。GetManifestResourceStream(“MyProcet.softAlarm.mp”)和GetManifestResourceStream(“softAlarm.mp3”),错误提示我在这里为您创建了一个示例项目:完成,谢谢!一点问题也没有:)我投了赞成票,因为我在模拟器上听到了声音,但在真正的设备上我什么也听不到。有什么建议吗?既然你说的是模拟器,我就用iOS?你打开静音模式开关了吗?谢谢!是的。我还将音量调到最大,并尝试手动设置音频。音量=1.00;这种情况发生在12.4.1 iOS的iPhone 6s上。是的,好的。在代码中手动设置音频,你的意思是?但是您是否翻转了设备侧面的实际物理静音模式开关?:)哈也许是某种缓存在某处的旧代码?不管怎样,很高兴它成功了!