https://github.com/sshpc/autovolume
根据环境噪音自动调节媒体音量的 Android 应用
https://github.com/sshpc/autovolume
Last synced: 11 days ago
JSON representation
根据环境噪音自动调节媒体音量的 Android 应用
- Host: GitHub
- URL: https://github.com/sshpc/autovolume
- Owner: sshpc
- Created: 2026-05-29T01:29:08.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-05-29T03:23:12.000Z (20 days ago)
- Last Synced: 2026-05-29T05:14:52.811Z (20 days ago)
- Language: Kotlin
- Size: 106 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AutoVolume - 自动音量调节
根据环境噪音自动调节媒体音量的 Android 应用。
## 功能特性
- 🎤 **实时噪音检测** — AudioRecord 采集麦克风数据,计算 dB 分贝值
- 🔊 **自动音量调节** — 根据噪音-音量映射曲线自动调节 STREAM_MUSIC
- 💤 **智能节能** — 屏幕关闭自动降低检测频率
## 技术栈
| 项目 | 选型 |
|------|------|
| 语言 | Kotlin |
| UI | Jetpack Compose + Material 3 |
| 架构 | MVVM |
| 异步 | Coroutines + Flow/StateFlow |
| 存储 | DataStore Preferences |
| minSdk | 29 (Android 10) |
| targetSdk | 35 (Android 15) |
## 项目结构
```
app/src/main/java/com/autovolume/
├── audio/ # 音频采集与分析
│ └── AudioAnalyzer.kt
├── volume/ # 音量控制
│ └── VolumeController.kt
├── headset/ # 耳机检测
│ └── HeadsetDetector.kt
├── service/ # 前台服务
│ └── AutoVolumeService.kt
├── receiver/ # 开机广播
│ └── BootReceiver.kt
├── datastore/ # 数据持久化
│ └── SettingsDataStore.kt
├── model/ # 数据模型
│ ├── AppSettings.kt
│ └── DetectionResult.kt
├── ui/ # UI 层
│ ├── MainViewModel.kt
│ ├── theme/Theme.kt
│ ├── components/DbMeter.kt
│ └── screens/ (Home/Settings/Advanced)
├── util/ # 工具类
│ └── PermissionHelper.kt
├── AutoVolumeApp.kt
└── MainActivity.kt
```
## 编译运行
1. 用 Android Studio 打开 `AutoVolume` 目录
2. 等待 Gradle Sync 完成
3. 连接手机或启动模拟器
4. 点击 Run ▶️
## 使用说明
1. 首次启动会申请录音和通知权限
2. 在主页开启"自动音量调节"开关
3. 连接耳机(蓝牙或有线)
4. 选择运行模式(推荐"平衡模式")
5. 在设置中调整音量映射曲线和各项参数
## 权限说明
| 权限 | 用途 |
|------|------|
| RECORD_AUDIO | 麦克风检测环境噪音 |
| POST_NOTIFICATIONS | 前台服务通知 (Android 13+) |
| FOREGROUND_SERVICE_MICROPHONE | 前台服务使用麦克风 (Android 14+) |
| RECEIVE_BOOT_COMPLETED | 开机自启动 |
| REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | 电池优化白名单 |
## 注意事项
- 部分国产手机需要手动允许自启动和后台运行权限
- 建议关闭电池优化以确保后台稳定运行
- 首次使用请在安静环境下测试映射曲线是否合适