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

迁移MAUI应用时遇Resource无Raw定义问题,如何获取资源ID?

迁移MAUI后获取Android音频资源ID的解决方法

方法一:将音频转为Android专属Raw资源

  • 在MAUI项目的Platforms/Android/Resources目录下新建raw文件夹(如果不存在)
  • 将音频文件(如beepok.mp3)放入该raw文件夹
  • 选中文件,在属性面板设置:
    • 生成操作:AndroidResource
    • 复制到输出目录:如果较新则复制
  • 编译后即可继续使用原有代码:
MediaPlayer.Create(Android.App.Application.Context, Resource.Raw.beepok);

方法二:通过AssetManager读取MauiAsset资源

如果不想移动文件,保持Resources/Raw下的跨平台资源结构,可以通过Android的AssetManager读取文件流来初始化MediaPlayer:

using var assetManager = Android.App.Application.Context.Assets;
// 文件名需与Resources/Raw下的文件完全一致(包含后缀)
using var inputStream = assetManager.Open("beepok.mp3");

var mediaPlayer = new MediaPlayer();
mediaPlayer.SetDataSource(inputStream.FileDescriptor);
mediaPlayer.Prepare();
mediaPlayer.Start();

// 使用完毕后记得释放资源,避免内存泄漏
// mediaPlayer.Release();

注意:第二种方法需要手动管理资源释放,确保在不需要播放时调用Release()方法回收资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:39:34