Skip to content

Repository files navigation

MusicConverter

一款面向 Android 的本地音乐管理、格式转换与音频处理工具。

当前正式版本:v2.3
最低 Android 版本:Android 10(API 29)

交流群

QQ 交流群:1054469058

点击加入 QQ 群

如果链接无法直接打开,请在 QQ 中搜索群号 1054469058 加入。

v2.3 主要功能

  • 首页直接列出设备中的本地音乐
  • 本地音乐列表支持缓存恢复,不会每次启动都自动重新扫描
  • 本地音乐采用分批加载,降低大量歌曲时的滚动卡顿
  • 本地音乐缺少封面时可联网搜索并缓存封面
  • 内置播放器与底部迷你播放器
  • 当前播放列表支持添加、删除、清空和点击切歌
  • 支持顺序播放、单曲循环和随机播放
  • 播放时显示系统通知栏提示
  • 单文件转换与批量转换统一到 “转码” 页面
  • 音频剪辑与选区试听
  • 转换或剪辑完成后支持保留、删除或置换源文件
  • 支持自定义批量扫描时需要忽略的音频格式
  • 批量转换支持 1~4 路并行、暂停、继续和停止
  • 批量转换使用 Android 前台服务,可在离开主界面后继续执行
  • Room 本地处理历史
  • 设置页集中管理主题、底部播放器显示、文件权限、电池优化、缓存、历史记录和 FFmpeg 检测
  • 支持深色 / 浅色界面

在线音乐(不维护)

应用内包含在线音乐搜索与播放入口,并支持多个第三方音源聚合、自动切源以及与本地音乐共用播放器。

该功能不维护。 在线音源、接口和媒体地址均可能随第三方服务变化而失效,出现搜索失败、无法解析或无法播放时,不保证持续修复,也不保证任何音源长期可用。MusicConverter 的主要定位仍然是本地音乐处理。

本地音乐与播放器

首页读取 Android MediaStore 中的本地音乐。首次授权后会扫描音乐列表,后续启动优先恢复缓存;需要重新获取新增或删除的音乐时,可手动点击“刷新本地音乐”。

为了提升大量歌曲场景下的流畅度,列表采用分批渲染。歌曲缺少本地缩略图时,应用可以联网尝试补全封面,成功结果会写入缓存,避免反复请求。

播放器支持:

  • 当前播放列表
  • 添加 / 删除歌曲
  • 清空播放列表
  • 上一首 / 下一首
  • 顺序播放
  • 单曲循环
  • 随机播放
  • 底部迷你播放器
  • 系统通知栏播放提示

支持格式

常规音频

  • MP3
  • FLAC
  • M4A / AAC
  • WAV
  • OGG / OPUS

加密音乐

工程包含对以下类型的识别与处理能力:

  • 网易云音乐 NCM
  • QQ 音乐 QMC / MFLAC 等格式
  • 酷狗 KGM / KGMA / VPR
  • 酷我 KWM

部分新版加密格式可能依赖额外密钥或受到上游解密能力限制,因此不能保证所有文件都可以成功处理。

转码

“转码”页面集中提供单文件转换和批量转换。批量模式支持通过 Android SAF 选择目录并递归扫描音乐文件,也可在获得“所有文件访问权限”后使用全盘扫描。

可以设置扫描时需要忽略的格式,例如 MP3、FLAC、M4A / AAC、WAV、OGG / OPUS 以及部分加密音乐格式。默认忽略 MP3,避免 MP3 → MP3 的重复有损转码。

批量转换支持:

  • 1~4 路并行任务
  • 转换进度与成功 / 失败统计
  • 前台服务与常驻通知
  • 通知栏暂停、继续和停止
  • 完成当前任务后再暂停
  • 可选置换源文件

多数设备建议使用 2 路并行。更高并行度会增加温度、耗电和存储 I/O,并不一定更快。

音频编辑

编辑页面可以在进入后再选择或重新选择音频文件。支持普通音频和可处理的加密音乐文件。

目前包含波形预览、选区剪辑和试听等能力。剪辑优先尝试 FFmpeg stream copy,无法直接复制时自动使用重新编码方式处理。

处理完成后可以根据实际文件与存储权限选择保留源文件、删除源文件或使用处理结果置换源文件。

设置

底部“设置”页面集中提供界面与系统相关选项,并在页面最下方保留应用介绍。主要包括:

  • 深色 / 浅色主题
  • 底部播放器默认显示
  • 所有文件访问权限
  • 后台耗电 / 电池优化
  • 扫描已安装音乐 APP
  • 转换 / 剪辑历史
  • FFmpeg 运行检测
  • 清理缓存
  • 软件更新
  • 应用介绍、隐私说明、交流群与开源组件信息

“清理缓存”会清理本地音乐列表缓存、联网封面缓存和应用临时缓存,不会删除音乐文件或转换结果。

输出位置

默认输出目录:

Music/MusicConverter/

输出通过 Android MediaStore / SAF 处理,遵守 Android 存储权限和沙箱机制。

Android 11 及以上版本中,Android/dataAndroid/obb 等目录仍受系统限制。

构建环境

  • JDK 17
  • Python 3.11
  • Gradle Wrapper 8.7
  • compileSdk 35
  • targetSdk 35
  • minSdk 29
  • ABI:arm64-v8aarmeabi-v7a

项目使用 Chaquopy 调用 Python 音频处理组件,并使用工程内的 FFmpegKit module,不依赖已经停止发布的 FFmpegKit Maven artifact。

本地构建

./gradlew assembleDebug

Release 构建需要配置对应的签名信息。

使用提示

  • 批量处理大量文件前,建议先使用少量文件确认输出结果。
  • 置换或删除源文件的能力取决于 Android SAF / MediaStore 以及文件提供方授予的权限;无法安全修改源文件时,应用会尽量保留原文件和已经生成的输出。
  • MIUI / HyperOS 可能额外限制后台任务。长时间批量转换时,可根据需要将应用电池策略调整为允许后台运行。
  • 在线音乐功能不维护,第三方音源不可用不代表本地转换、编辑和播放器功能异常。
  • FFmpegKit 及其他第三方组件具有各自的开源许可要求,重新分发 APK 时请根据实际构建配置核对相应许可。

技术组件

  • Kotlin / Android Framework
  • FFmpegKit
  • Chaquopy / Python 3.11
  • PyCryptodome
  • Mutagen
  • Android Room

项目定位

MusicConverter 主要用于管理和处理用户自己拥有并有权处理的本地音频文件。应用不会绕过 Android 系统的存储沙箱限制。

About

音乐编辑与解析

Resources

Stars

34 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages