w2016561536 / android_virtual_cam

xposed安卓虚拟摄像头 android virtual camera on xposed hook
MIT License
1.43k stars 395 forks source link

setPreviewTexture处理有遗漏 #5

Closed bad-copy closed 3 years ago

bad-copy commented 3 years ago

setPreviewTexture传入的参数可能是null(Android 6.0.1): android/hardware/camera2/legacy/RequestThreadManager.java 在configureOutputs函数中有如下代码片段: try { mCamera.setPreviewTexture(/*surfaceTexture*/null); } catch (IOException e) { Log.w(TAG, "Failed to clear prior SurfaceTexture, may cause GL deadlock: ", e); } catch (RuntimeException e) { 这样就会造成HookMain.msurf = new Surface(HookMain.msurftext);抛出异常IllegalArgumentException

w2016561536 commented 3 years ago

但是你需要考虑一点,当应用设置NULL的时候,其实是在清空预览,此时根本不需要去HOOK它的预览目标,参数错误刚好能打断此次hook,当然,如果想让代码严谨一些,最好用if判断

bad-copy commented 3 years ago

最直接的问题是: 原来可以正常预览,使用了插件后,就不能预览了。

w2016561536 commented 3 years ago

能提供一下应用程序吗??

w2016561536 commented 3 years ago

我已经修改了代码,做了NULL的判断,但我觉得根本不是这个问题。

bad-copy commented 3 years ago

试了你刚发布的版本,好用了!

w2016561536 commented 3 years ago

试了你刚发布的版本,好用了!

那真的很感谢你发现的问题,我从来没有遇到过。