You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms中Simple Audio Player无法使用的问题求助

解决Simple Audio Player播放音频的两个错误

错误1:NU1202 包不兼容问题

  • 问题本质:Android项目安装了仅支持WPF(.NET Framework 4.5)的Xam.Plugin.SimpleAudioPlayer.WPF包,与monoandroid13.0平台不兼容。
  • 解决步骤:
    1. 打开NuGet包管理器,切换到NewTimer.Android项目。
    2. 卸载已安装的Xam.Plugin.SimpleAudioPlayer.WPF。
    3. 搜索并安装Xam.Plugin.SimpleAudioPlayer(核心跨平台包,不要带WPF后缀),选择支持monoandroid13.0的版本。

错误2:CS0103 变量不在当前上下文问题

  • 问题本质:simpleAudioPlayer是构造函数内的局部变量,作用域仅限构造函数,ARandomMethod无法访问。
  • 解决步骤:将播放器实例改为类的私有字段,扩展作用域至整个类,并在构造函数中完成初始化与音频加载。

修正后的完整代码示例

private ISimpleAudioPlayer _simpleAudioPlayer;

public MainPage()
{
    InitializeComponent();
    // 初始化播放器
    _simpleAudioPlayer = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
    // 加载嵌入的音频资源
    Stream beepStream = GetType().Assembly.GetManifestResourceStream("App1.Beep.mp3");
    if (beepStream != null)
    {
        _simpleAudioPlayer.Load(beepStream);
    }
    ARandomMethod();
}

private void ARandomMethod()
{
    if(/* 替换为你的触发条件 */)
    {
        _simpleAudioPlayer?.Play(); // 使用空条件运算符避免空引用异常
    }
}

额外注意事项

  • 确保Beep.mp3的生成操作设置为嵌入的资源:右键文件→属性→生成操作→选择“嵌入的资源”。
  • 资源名称需与实际命名空间+文件名一致,例如项目命名空间为NewTimer时,资源名称应为NewTimer.Beep.mp3。

内容的提问来源于stack exchange,提问作者Marsjanin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:45:45