在Xamarin.Android中获取资源ID“Android.Content.Res.Resources + NotFoundException:”错误发生

问题描述 投票:0回答:1

我想从Asset文件夹获取音频文件的id(int),但它给了我错误。

var File_Id = Resources.GetIdentifier("my_file.ogg","Assets", PackageName);

上面的代码行在android Service中执行它给出错误,

错误日志:

03-13 14:03:50.047 W / ResourceType(13170):获取资源号0x00000000的值时没有包标识符未处理的异常:Android.Content.Res.Resources + NotFoundException:资源ID#0x0

此文件“my_file.ogg”位于“Asset”文件夹中,构建操作设置为“AndroidAsset”

c# xamarin xamarin.android
1个回答
0
投票

可以使用AssetsManager读取资产。尝试使用以下代码段从资产中读取文件。

Android.Content.Res.AssetFileDescriptor afd = this.Assets.OpenFd("File name");

更新答案:

以下代码段将有助于直接从Asset文件夹播放媒体文件。

Android.Content.Res.AssetFileDescriptor afd = this.Assets.OpenFd(fullPath);
     if  (afd != null )
     {
         player.SetDataSource (afd.FileDescriptor, afd.StartOffset, afd.Length);
         player.Prepare ();
         player.Start ();
     }
© www.soinside.com 2019 - 2024. All rights reserved.