2023-01-20 243
我想知道如何从本机代码(即C ++文件)直接访问图像,声音文件等资源.实际上,我正在寻找可以帮助我使用asset_manager_jni.h方法的任何示例.
寻找建议.预先感谢.
with with.
atul prakash singh
好吧,您可以访问stdio.h.因此,如果它位于已知的地方(例如在SD卡上),则可以将其用作路径.网上有很多关于使用stdio的教程(fopen,fclose等).
问题是,您将资源捆绑到APK本身(在RES/RAW或资产中),在安装后,请留在APK内.更糟糕的是,默认情况下,它们将被压缩,这使得阅读不可行.可以避免这种情况,最简单的方法是将资产重命名为.mp3扩展程序(或者还有其他).原因是因为默认情况下,.mp3不被压缩,无论它是否实际是mp3文件).您还可以使用其他扩展名,以及如果您不喜欢在末尾使用.mp3命名所有资产,则可以告诉工具不要压缩数据.
所以,您在这里有一些选择:
在您的第一次运行中从网上下载您的资源,将它们放在一个不引人注目的地方(最好是在下载时从SDK中获取该路径),然后使用它.
将您的资源存储在APK中(请记住.mp3扩展名,在资产文件夹中).在您的第一次运行中,将资产提取到您可以访问的文件夹中(并且不会惹恼用户),然后使用其中的资源.
(我要做的)将您的资源存储在APK(再次.mp3)中,并使用JNI直接从APK读取.是的,JNI有点慢,但是无论如何,您都不应该从文件系统中读取很多内容,当然也不应该在绩效关键点上读取. NVIDIA有一些非常有用的代码,您可以找到它在这里,它在示例中如果我记得的话,代码.在Libs文件夹中,您可以使用与STDIO相匹配的好的通用库,除了它也从APK本身读取.
我确实使用过这个技巧:
mv $file lib/lib%${file}.so
以上所述是小编给大家介绍的如何使用Android-NDK从本地代码中直接访问资源(如声音、图像等)?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26160.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态