Skip to content

轻剪辑 2.2.3

Choose a tag to compare

@pisces312 pisces312 released this 31 Oct 14:10
· 7 commits to main since this release

轻剪辑 2.2.3

内置 FFmpeg 升级到 8.1.3,补齐完整英文界面,并在「关于」里列出全部开源组件与许可全文。签名与 2.2.2 相同,可直接覆盖安装。


中文

1. 新增:完整英文界面

补齐 values-en 缺失词条,并抽出约 40 条写死在代码里的中文。系统语言为英语时,主页、压缩、合并、无损截取、提取音频、音频编辑器、设置、关于、日志以及各类错误提示全部显示英文。编码器、旋转角度这些下拉选项以前在初始化时就把中文固定下来,切换语言后不会变,现在改为显示时按当前语言解析。应用内「设置 → 语言」仍可单独覆盖系统语言。

2. 新增:关于页开源许可清单

「关于 → 开源许可」原本只有一份笼统的 LGPL 说明。现在列出打包进 APK 的全部 17 个开源组件:

  • 原生层:FFmpeg 8.1.3、FFmpegKit 8.1.3、x264 (build 164)、x265 (4.2)、LAME 4.0、cpu_features 0.8.0
  • Java 层:AndroidX Core / AppCompat / Activity / ConstraintLayout / Lifecycle / DocumentFile / Media3、Material Components、MP4Parser、AspectJ Runtime、Desugar JDK Libs

每项显示版本与许可类型,点进去可以看到源码地址、Maven 坐标或编译开关(例如 FFmpeg 的 configure 参数、x264/x265 的提交号),以及许可全文。FFmpeg 版本在运行时直接向 native 层查询,以后换 AAR 不用再改代码。列表末尾附带 GPL 合规声明链接。

3. 修复:Opus 编码必然失败

内置的 opus 编码器不自动重采样,源采样率不是 48 kHz(44.1 kHz 最常见)时直接报错,等于完全不可用。现在 Opus 输出强制重采样到 48 kHz。

4. 修复:音频编辑器导出失败后留下 0 字节文件

编码返回失败或抛异常时,SAF 里已创建的目标文件没被删除,会留下一个 0 字节的坏文件。现在两条失败路径都会清理。

5. 构建:ffmpeg-kit 8.1 → 8.1.3

FFmpeg 升到 n8.1.3 补丁版(LIBAVUTIL_60 等 SONAME 未变),AAR 用同一套脚本重新自编译,静态链接 libx264 / libx265 / libmp3lame。新 AAR 一度出现「一压缩就崩溃」:上游 compat/android/binder.c 会在 App 进程把 Binder 线程池缩容到 1,触发 Binder threadpool cannot be shrunk after starting 而 abort,现在只保证线程池已启动、不再设线程数上限。顺带把关于页的整体许可说明从 LGPL-3.0 更正为 GPL-3.0 —— 静态链接 x264/x265 后整体只能是 GPL。


English

1. Added: complete English UI

All missing values-en entries are filled in, and roughly 40 hard-coded Chinese strings were extracted into resources. With the system language set to English, the home screen, compress, merge, lossless trim, audio extract, audio editor, settings, about, logs and every error message are now in English. Encoder and rotation dropdown labels used to be baked in at init time and stayed Chinese after switching language — they are now resolved at display time. The in-app Language setting still overrides the system locale.

2. Added: open source license list in About

"About → Open Source Licenses" used to show a single vague LGPL sentence. It now lists all 17 open source components bundled in the APK:

  • Native: FFmpeg 8.1.3, FFmpegKit 8.1.3, x264 (build 164), x265 (4.2), LAME 4.0, cpu_features 0.8.0
  • Java: AndroidX Core / AppCompat / Activity / ConstraintLayout / Lifecycle / DocumentFile / Media3, Material Components, MP4Parser, AspectJ Runtime, Desugar JDK Libs

Each row shows the version and license type; tapping it reveals the source URL, the Maven coordinate or build flags (FFmpeg's configure line, x264/x265 commit hashes) and the full license text. The FFmpeg version is queried from the native layer at runtime, so swapping the AAR no longer requires code changes. A GPL compliance link is appended at the end of the list.

3. Fixed: Opus encoding always failed

The built-in opus encoder does not resample, so any source rate other than 48 kHz (44.1 kHz is the common case) failed outright. Opus output is now forced to 48 kHz.

4. Fixed: failed audio export left a 0-byte file behind

When encoding returned an error or threw, the already-created SAF document was never deleted, leaving a broken empty file. Both failure paths now clean up.

5. Build: ffmpeg-kit 8.1 → 8.1.3

FFmpeg moved to the n8.1.3 patch release (SONAMEs such as LIBAVUTIL_60 are unchanged). The AAR was rebuilt with the same scripts, statically linking libx264 / libx265 / libmp3lame. The new AAR initially crashed on every compression: upstream compat/android/binder.c shrinks the Binder thread pool to 1 in the app process, which aborts with Binder threadpool cannot be shrunk after starting. It now only makes sure the pool is started and never sets a thread cap. The About page's blanket license note was also corrected from LGPL-3.0 to GPL-3.0 — with x264/x265 statically linked, the app as a whole can only be GPL.


安装说明 / Install notes

项目 / Item 值 / Value
版本 / Version 2.2.3 (versionCode 15)
ABI arm64-v8a
minSdk / targetSdk 26 / 37
签名证书 SHA-256 / Cert SHA-256 abadebd2fc9523628b5dacfa0fb40f652df0e161b71820c7a4b5a40653ee0b90
APK SHA-256 d2ee3d5c5bcff4434b02fc7b944a99adeea0b84e8c2e7804a418124a4e3ae602
大小 / Size 32,075,180 bytes (30.6 MiB)

签名证书与 2.2.0 / 2.2.1 / 2.2.2 一致,可直接覆盖安装,无需卸载。

许可证 / License

GPL-3.0(内置 FFmpeg / ffmpeg-kit,含 libx264 / libx265)。完整组件清单与许可全文见应用内「关于 → 开源许可」或仓库内 GPL_COMPLIANCE.md。