AssetManager中的路径参数不能包含"assets/"
String path = “music/bg.mp3”; //正确的参数 //String path = “assets/music/bg.mp3”; //错误的参数
//String path = “file:///android_asset/music/bg.mp3”; //错误的参数
//String path = “/music/bg.mp3”; //错误的参数 AssetFileDescriptor assetFileDescritor = mContext.getAssets().openFd(path);
mediaPlayer.setDataSource(assetFileDescritor.getFileDescriptor(),
assetFileDescritor.getStartOffset(), assetFileDescritor.getLength());
assetFileDescritor.close();
1. java代码中AssetManager的路径参数不能包含"assets/",
2. 但是在NDK编程中C代码里面如果采用zip方式访问assets的文件,必须包含"assets/"
//ReadAssets fileName = assets/rabbit/img/banana_skin.png
off_t readFileFromAsset(const char* fileName, char ** buffer)
{
logd("ReadAssets fileName = %s", fileNmae);
struct zip* apkArchive=zip_open(assetPath, , NULL);
struct zip_stat fstat;
struct zip_file* file = zip_fopen(apkArchive, fileName, ); if (!file) {
loge("Error opening %s from APK", fileName);
return -;
} zip_stat(apkArchive,fileName,,&fstat); off_t bfsize = fstat.size;
*buffer=(char *)malloc(bfsize+);
memset(*buffer, 0x0, bfsize+);
int numBytesRead = zip_fread(file, *buffer,bfsize);;
zip_fclose(file);
return bfsize;
}
上述代码中assetPath是在java层传过来的,通过调用String assetPath = context.getPackageResourcePath(),传递到c++层调用
const char* assetPath = env->GetStringUTFChars(jassetPath, false);
env->ReleaseStringUTFChars(jassetPath, assetPath);
得到。
3. 在C++层使用AAssetManager也是一样必须以"assets/"开头。
AAsset* asset = AAssetManager_open(assetMgr, realPath, AASSET_MODE_UNKNOWN);
off_t bufferSize = AAsset_getLength(asset);
char* buffer=(char*)malloc(bufferSize+);
memset(buffer, , bufferSize);
buffer[bufferSize]=;
int numBytesRead = AAsset_read(asset, buffer, bufferSize);
AAsset_close(asset);
AssetManager中的路径参数不能包含"assets/"的更多相关文章
- SpringMVC中请求路径参数使用正则表达式
@GetMapping("/user/{id:\\d+}") //使用正则指定Id为数字 public User getInfo(@PathVariable String id){ ...
- 7z命令行参数中的路径
最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下.本文中所有demo使用的7z版本为:15.14 x64. 压缩某个文件夹 下面的命令会把g:\temp\目录和目录 ...
- struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
我的前台页是这样的: <body> <form action="test.action" method="post"> ...
- vue-cli中自定义路径别名 assets和static文件夹的区别
转自:vue-cli中自定义路径别名 assets和static文件夹的区别 静态资源处理: assets和static文件夹的区别 相信有很多人知道vue-cli有两个放置静态资源的地方,分别是sr ...
- 使用Visual Studio进行单元测试-Shim类中无法找到参数包含CancellationTokenSource的方法
Shim类中无法找到参数包含CancellationTokenSource的方法,这句话有点绕口,看例子. 一.代码 public class CancellationDemo { public in ...
- 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径
转自原文 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径. 打开C:\Windows\System32\inetsrv\config路径 找到applicationH ...
- SpringMVC重定向路径中带中文参数
SpringMVC重定向路径中带中文参数 springboot重定向到后端接口测试 package com.mozq.http.http_01.demo; import org.springframe ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 数据库邮件服务器中sp_send_dbmail的参数使用
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ] [ , [ @recipients = ] 'recipients [ ; n ]' ...
随机推荐
- JavaScript之引用类型介绍
引用类型的值(对象)是应用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,用于将数据和功能组织在一起.他们通常也被成为JavaScript中的类,但这种称 ...
- VS2012 TFS切换账号登录
最近要做团队项目,用到的vs2012的tfs代码管理器(win7 +vs2012),切换账号的流程如下: 1.打开控制面板,进入用户账户 2.点击左侧的管理您的凭据,看到自己的TFS服务器的地址,然后 ...
- Javascript知识三
O(∩_∩)O...今天继续学习了Javascript的知识,下面就总结一下. 数组: 判断是否为数组(instanceof Array) 在JavaScript中,数组不一定是同一类型 var ar ...
- T-SQL 基于关系分割字符串
今天晚上学习了下 SQL 基于关系的运算,同时也捉摸着写了个例子,虽然我知道性能不是很好,还有待优化.直接上源代码吧,思路表达出来有点困难,直接贴上代码,如果有人不懂得可以MM 我. declare ...
- fatal error LNK1123: failure during conversion to COFF: file invalid or corr
新装VS2010出现标题的错误,使用了下面的方法,不行 这个是由于日志文件引起的,可以将 项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是"是",改成"否&q ...
- I - Doing Homework again
I - Doing Homework again Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- hadoop搭建杂记:Linux下hadoop的安装配置
VirtualBox搭建伪分布式模式:hadoop的下载与配置 VirtualBox搭建伪分布式模式:hadoop的下载与配置 由于个人机子略渣,无法部署XWindow环境,直接用的Shell来操作, ...
- OSG中的智能指针
在OpenSceneGraph中,智能指针(Smart pointer)的概念指的是一种类的模板,它针对某一特定类型的对象(即Referenced类及其派生类)构建,提供了自己的管理模式,以避免因为用 ...
- java核心技术学习笔记之三程序设计结构
一 基本数据结构 必须包括在类中 必须具备 public static main方法 大小写敏感 二.数据类型 四种整数类型: Int 4字节 short 2字节 long8字节 byte1字节 二种 ...
- 老男孩python第六期
01 python s6 day7 上节回顾02 python s6 day7 SNMP使用03 python s6 day7 大型监控架构讲解04 python s6 day7 Redis使用05 ...