游戏图片文件和声音文件的隐藏


资源包放在客户端后(资源更新到了SD卡上),打开图片和音乐程序后,所有这些文件会在手机的图片或音乐程序里被自动发现,导致玩家的相册或音乐程序很混乱,影响了用户正常使用手机。也显得很不专业。

重命名相关资源文件:

将xxx.png图片改名为xxx.png.XXX  【XXX自定义】
将xxx.ogg声音改名为xxx.ogg.XXX


资源load时 需要 资源名字 + XXX

public static Image createImage(String filePathName){

filePathName += XXX;

.

.

.

}

参数filePathName,将接受从游戏传过来的资源路径参数。比如 Image.createImage("file://pic/xxx.png");
 
其实更好的方式是把资源都做成工具特有的格式,可以起到游戏资源的加密作用。
 
 
2011.9.16
问题:声音文件改了后缀之后MediaPlayer加载资源的时候 
    AssetFileDescriptor afd = AppConfig.getAssetManager().openFd(pathName);
    global_music[resID].setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
 
     抛出异常:java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed

原因:Asset目录下非特定后缀名得文件都会被压缩,而openFd只能打开未压缩的文件。

from Dealing with Asset Compression in Android Apps(避免asset目录下文件被压缩)

 

不压缩的格式: 

/* these formats are already compressed, or don't compress well */
static const char* kNoCompressExt[] = {
    ".jpg", ".jpeg", ".png", ".gif",
    ".wav", ".mp2", ".mp3", ".ogg", ".aac",
    ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
    ".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
    ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
    ".amr", ".awb", ".wma", ".wmv"
};


 

解决方案:

I 使用上面这些格式,但是隐藏效果没有了。

II asset文件处理的时候不压缩特定格式【我们自定义的XXX】的文件。

III 先把文件拷贝到SD卡里 能后通过setDataSource(GameConfig.GAME_PATH_SD+"/"+pathName)来设置资源

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值