hanfy91
hanfy91
不压缩后依然加载不了,挪到StreamingAsset使用,更新后依然加载不了,使用UnityWebRequest从StreamingAsset加载二进制文件没问题,但是用Unity VideoPlayer组件的Url加载模式会加载不出来 2022-06-17 14:56:38.396 1929-2052/cn.jj.jedi I/il2cpp: [9a65f910]my_open open: /data/app/cn.jj.jedi-1/base.apk 2022-06-17 14:56:38.396 1929-2052/cn.jj.jedi I/il2cpp: [9a65f910]prepare_file /data/app/cn.jj.jedi-1/base.apk -> 0x8f634508 2022-06-17 14:56:38.396 1929-2052/cn.jj.jedi I/il2cpp: [9a65f910]fopen -> 0x8f634508 2022-06-17 14:56:38.396 1929-2052/cn.jj.jedi I/il2cpp: [9a65f910]FileExtraData saved...
研究了一下源码,问题应在hook只hook了libunity.so,视频的播放方式可能是libUnity.so获取文件描述符,然后给到Android底层,底层使用文件描述符去读取文件,但是libunity.so中返回的文件描述符不是真实的apk文件的文件描述符,所以底层直接读取文件是读取不到的,具体怎么修改,还没想好,作者大佬有没有什么好的解决方案??
unity 的VideoPlayer不支持load streaming播放,现在临时的解决方案就是复制到包体外面,用外面的路径播放,但是不确定会不会有其他类似的问题,bug的本质是因为只Hook了libUnity.so的io接口,只要libUnity.so把文件句柄提供给其他部分使用都会有这种问题,感觉是个隐藏的坑啊,这个bug有什么本质性的解决方案么?