Skip to content

Commit

Permalink
硬解码更新,但存在优化BUG
Browse files Browse the repository at this point in the history
  • Loading branch information
w2016561536 committed Aug 30, 2021
1 parent 32577d4 commit f9bb9d3
Show file tree
Hide file tree
Showing 4 changed files with 475 additions and 47 deletions.
17 changes: 7 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,18 @@
xposed安卓虚拟摄像头
## 感谢https://github.com/wangwei1237/CameraHook 提供的HOOK思路!!

已加入Camera2支持,抖音测试通过,需要**不静音**的可以在no-silent的分支/app/release/app-release.apk下载(no-silent更新很不及时)。(链接全部放下面了)
已加入Camera2支持,抖音测试通过,需要**不静音**的可以在no-silent的分支/app/release/app-release.apk下载(no-silent更新很不及时(也可能是不更新了))。(链接全部放下面了)
### github release里全是静音的。
### 软件对TextureView预览信息替换的视频是 /sdcard/DCIM/Camera/virtual.mp4
### 软件对onPreviewFrame预览信息替换的**照片**是 /sdcard/DCIM/Camera/bmp/****.bmp
**命名规则**:"****.bmp" 是bmp图片,文件命名的规则为:从1000.bmp开始,按帧排序依次为1000.bmp,1001.bmp,1002.bmp……,最少有1张图片,最大不超过1000张(超过了的话文件名会多一位),可以使用Premiere将视频转化为BMP。

## 具体的使用方法:
1、安装xposed框架(传统xposed,edxp,lsp等均可,不确定虚拟框架能否使用,已经确定VMOS可用,应用转生不可用)
## 具体的使用方法:
1、安装xposed框架(传统xposed,edxp,lsp等均可,不确定虚拟框架能否使用,已经确定VMOS可用,应用转生不可用)
2、安装模块,启用模块,lsp等包含定义域的框架需要选勾目标app,但无需选勾系统框架。
3、对于大多数应用,只需要将替换的视频命名为virtual.mp4,放在/sdcard/DCIM/Camera/目录下。
4、多余少部分应用(如腾讯会议,和其他应用大部分的二维码扫描),需要使用premiere或其它剪辑软件将视频拆分成BMP格式图片(命名格式见上,premiere视频总帧数超过1000帧,导出时名字设置为1.bmp,会自动按以上的命名格式命名),要注意的是图片分辨率需要与目标分辨率匹配(获取分辨率方法见下),将这些图片放在/sdcard/DCIM/Camera/bmp/目录下(没有的话自己创建)。
3、将需要替换的视频命名为virtual.mp4,放在/sdcard/DCIM/Camera/目录下。(前置摄像头需要水平翻转后右旋90°保存,onPreviewFrame需要匹配分辨率)
4、若需要拦截拍照事件,请在/sdcard/DCIM/Camera/目录下放置 1000.bmp 用于替换,(前置摄像头需要水平翻转后右旋90°保存,需要匹配分辨率)
5、强制结束目标应用/重启手机。

## > 如何获得分辨率??(仅onPreviewFrame需要,其它系统自动处理)
在目标应用中打开摄像头,若创建回调则即可在Xposed log得到分辨率(可查看到字样为:帧预览回调初始化:宽……高…………)
## > 如何获得分辨率??(仅onPreviewFrame和拍照需要,其它系统自动处理)
在目标应用中打开摄像头,可在toast消息里看见

## Camera2接口有问题??
是的,目前Camera2接口的HOOK不是所有应用程序都能生效,部分app报错打开相机失败,如果想停用Camera2接口的HOOK,可在/sdcard/DCIM下创建disable.jpg,以停用此项HOOK
Expand Down
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ android {

defaultConfig {
applicationId "com.example.vcam"
minSdk 16
minSdk 21
targetSdk 28
versionCode 2
versionName "1.1"
versionCode 3
versionName "2.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Loading

0 comments on commit f9bb9d3

Please sign in to comment.