输入
mj,立刻弹视频 🎬 —— 一个基于 LSPosed/Xposed 框架的趣味 Android 模块。
当你在任意应用(微信、QQ、浏览器、输入法等)的任意输入框中输入 mj 两个字母时,模块会自动在当前界面弹出透明背景的全屏遮罩视频播放,播放完自动消失;连续触发时会在多个视频之间轮换播放。
本仓库 fork 自 MI-KUNs/MJAPPS(MJAPPS Alpha SbS 透明视频播放器),在保留其 AlphaSbsPlayer + SbsRenderView 播放内核的基础上,恢复原 Xposed 模块「全局输入触发」的观看方式。感谢原作者 MI-KUNs 的开源贡献。
- 🎯 全局监听:Hook
TextView.onTextChanged,任何应用/任何输入框输入mj即触发(从无到有才触发,防止长按/回删连弹) - 🖥️ 全屏遮罩播放:通过透明桥接 Activity +
TYPE_APPLICATION_OVERLAY全屏半透明遮罩叠加视频,层级高于所有应用窗口、Dialog 和输入法 - 🎬 透明抠图视频:内置 MJAPPS 抠图视频素材(人物/物体已抠除背景),悬浮播放时与下层界面实时合成,呈现真正的透明背景效果
▶️ MJAPPS Alpha SbS 播放器:继承 MI-KUNs/MJAPPS 的 Alpha Side-by-Side 播放方案——MediaCodec双线程解码(视频 + 音频)+OpenGL ES片元着色器实时合成(左半灰度 Alpha 遮罩 + 右半彩色帧 → 预乘透明画面)- 🔄 多视频轮换:内置多个抠图视频,第 1 次触发播第 1 个、第 2 次播第 2 个……循环轮换
- 🖱️ 点击即关:点击视频任意处可提前关闭;播放完成自动移除
- 📦 素材内置打包:视频素材(
output.mp4+config.json)直接打包进模块 APK 的assets/video/,首次触发自动解压到宿主缓存目录,安装即用 - 📝 三重日志:LSPosed 日志 + logcat(
MJ_MODULE)+/sdcard/mj_module.log文件
| 文件 | 作用 |
|---|---|
com.mikun.mjapps/HookInit.kt |
Xposed 入口:Hook TextView.onTextChanged,检测到输入 mj 时拉起触发 Activity |
com.mikun.mjapps/MjTriggerActivity.kt |
透明桥接 Activity:悬浮窗权限检查、素材解压、视频轮换、拉起遮罩窗 |
com.mikun.mjapps/player/MjOverlayWindow.kt |
全屏遮罩播放窗:调 AlphaSbsPlayer + SbsRenderView 播放,点击任意处关闭 |
com.mikun.mjapps/player/AlphaSbsPlayer.kt |
解码 + 时钟同步 + 播放控制(来自 MJAPPS) |
com.mikun.mjapps/player/SbsRenderView.kt |
GLSurfaceView + 片元着色器合成渲染(来自 MJAPPS) |
com.mikun.mjapps/ui/ |
Compose 主页:视频列表、状态卡、随机悬浮播放、开发者/仓库卡片 |
触发链路:任意应用输入框输入 mj → HookInit 捕获 → 拉起 MjTriggerActivity(透明)→ 解压素材 → MjOverlayWindow 全屏遮罩播放 → 点击/播完关闭。
- 在 LSPosed 管理器中启用本模块
- 勾选作用域:微信、QQ、TIM、抖音、Chrome、夸克浏览器、拼音/搜狗/百度/讯飞输入法等(见
res/values/arrays.xml) - 重启系统使 LSPosed 加载模块
- 在任意作用域应用的输入框输入
mj,即可触发透明视频播放
悬浮窗权限(
SYSTEM_ALERT_WINDOW)需在模块 App 内授权;模块主页也提供视频列表与随机悬浮播放功能。
- 原作者 MI-KUNs / MI-KUNs/MJAPPS —— 提供 Alpha SbS 透明视频播放器内核
- 本仓库维护:wzijun054-crypto/mj-video-xposed
Apache License 2.0(继承自 MJAPPS 原项目)