我想从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”
可以使用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 ();
}