# Android Studio-java-MIDI-piano-v2.0 **Repository Path**: YHN282615109/android-studio-java-midi-piano-v2.0 ## Basic Information - **Project Name**: Android Studio-java-MIDI-piano-v2.0 - **Description**: No description available - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-01 - **Last Updated**: 2026-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: 安卓版MIDI钢琴 ## README # MIDI钢琴 V2.0.0 ## 项目简介 MIDI钢琴是一款基于Android平台的专业钢琴模拟与MIDI工具应用。它通过真实的MIDI输出技术提供高质量的音乐演奏体验,并集成了完整的录音、编辑和导出功能。 ## 主要功能 ### 🎹 钢琴演奏 - **49键扩展钢琴键盘**(A0 ~ C8,覆盖5个完整八度) - **128种GM标准音色**,支持音色切换 - **多种演奏方式**: - 鼠标点击琴键 - 键盘映射(支持电脑键盘演奏) - 触摸滑动演奏(滑音效果) ### 🎙️ 录音功能 - **系统内录**(Android 10+):录制设备输出的所有音频 - **麦克风录音**:录制麦克风输入的声音 - **MIDI事件录制**:记录音符、力度、音色变化等MIDI数据 - **录音控制**:开始/停止/暂停/恢复 ### 📤 导出功能 - **MIDI文件导出**(.mid):将录制的演奏导出为标准MIDI文件 - **WAV音频导出**(.wav):将麦克风录音导出为PCM WAV文件 - **响度最大化**(可选):自动调整导出音频的响度到峰值 ### 🎵 MIDI播放 - **MIDI文件解析**:支持标准MIDI文件(Format 0/1) - **可视化播放**:琴键高亮同步显示 - **MediaPlayer音频播放**:提供高质量音频输出 ### 🎨 用户界面 - **简谱显示**:琴键上直观显示简谱(如1、1'、1·) - **3D琴键效果**:按下动画、悬停高光、阴影效果 - **实时音量显示**:录音时显示音量条 - **录音时长计时器** ## 技术架构 ### 技术栈 - **语言**:Java + C++ (NDK) - **音频引擎**:AudioTrack + MIDI合成器(Native层) - **音频录制**:AudioRecord + MediaProjection (Android 10+) - **文件管理**:MediaStore (Android 10+) + 传统文件系统 - **MIDI解析**:自定义轻量级SMF解析器 ### 核心组件 | 组件 | 功能 | |------|------| | `playerService` | MIDI音频播放服务(Native合成器) | | `PianoKeyboardView` | 自定义钢琴键盘视图 | | `AudioRecorder` | 麦克风录音模块 | | `InternalAudioRecorder` | 系统内录模块(Android 10+) | | `MidiFileParser` | 标准MIDI文件解析器 | | `MidiPlaybackEngine` | MIDI播放引擎(音频+动画同步) | | `MediaStoreHelper` | 跨版本文件存储助手 | | `AudioNormalizeHelper` | 音频响度归一化工具 | ## 系统要求 - **最低Android版本**:Android 5.0 (API 21) - **目标Android版本**:Android 13 (API 33) - **推荐设备**:支持ARM64或ARMv7架构 ## 权限说明 | 权限 | 用途 | |------|------| | `RECORD_AUDIO` | 麦克风录音 | | `WRITE_EXTERNAL_STORAGE` | 导出文件(API ≤ 28) | | `READ_EXTERNAL_STORAGE` | 读取MIDI文件(API ≤ 32) | | `READ_MEDIA_AUDIO` | 读取音频文件(Android 13+) | | `FOREGROUND_SERVICE` | 系统内录前台服务 | | `FOREGROUND_SERVICE_MEDIA_PROJECTION` | 录屏授权(Android 14+) | ## 键盘映射 ### 低音区(简谱:带·) ``` Z → C3 (1·) X → D3 (2·) C → E3 (3·) V → F3 (4·) B → G3 (5·) N → A3 (6·) M → B3 (7·) ``` ### 中音区(简谱:正常) ``` A → C4 (1) S → D4 (2) D → E4 (3) F → F4 (4) G → G4 (5) H → A4 (6) J → B4 (7) ``` ### 高音区(简谱:带') ``` K → C5 (1') L → D5 (2') ; → E5 (3') ``` ### 功能键 ``` F5 → 开始录音 F6 → 停止录音 F7 → 暂停录音 F8 → 恢复录音 ``` ## 安装与构建 ### 克隆项目 ```bash git clone https://github.com/YHN282615109/MIDIPiano.git ``` ### 使用Android Studio构建 1. 打开Android Studio 2. 选择 `File → Open`,选择项目根目录 3. 等待Gradle同步完成 4. 点击 `Run` 按钮或使用 `Build → Build Bundle(s) / APK(s)` ### 命令行构建 ```bash ./gradlew assembleDebug ``` ## 项目结构 ``` app/src/main/ ├── java/com/Android/MIDI/ │ ├── midiPlayerService/ # MIDI播放服务 │ │ ├── player.java # Native合成器封装 │ │ └── playerService.java # MIDI服务 │ └── piano/ # 应用主逻辑 │ ├── MIDIPianoActivity.java # 主Activity │ ├── PianoKeyboardView.java # 钢琴键盘视图 │ ├── AudioRecorder.java # 麦克风录音 │ ├── InternalAudioRecorder.java # 系统内录 │ ├── MidiFileParser.java # MIDI解析 │ ├── MidiPlaybackEngine.java # MIDI播放引擎 │ ├── MediaStoreHelper.java # 文件存储助手 │ ├── AudioNormalizeHelper.java # 响度归一化 │ ├── midiViewer.java # MIDI可视化编辑器 │ ├── mgenner_native.java # Native接口 │ ├── uiView.java # 自定义视图 │ └── scrollGenerator.java # 滚动条生成器 ├── cpp/ # Native代码 │ └── CMakeLists.txt ├── res/ # 资源文件 │ ├── layout/ │ │ ├── activity_midi_editor.xml │ │ └── midieditor_instruments.xml │ └── values/ └── AndroidManifest.xml ``` ## 注意事项 1. **系统内录**需要Android 10+,首次使用需授权录屏权限 2. **MIDI文件播放**需要设备支持MIDI合成(或使用SoundFont) 3. **导出文件**默认保存在 `Music/MIDIPiano/` 目录 4. **长按琴键**默认500ms后自动停止(可在设置中调整) ## 开发者信息 - **作者**:叶海宁 - **邮箱**:791687349@qq.com / 282615109@qq.com - **微信**:17876586815 - **QQ**:791687349 / 282615109 - **GitHub**:[YHN282615109](https://github.com/YHN282615109) - **Gitee**:[YHN282615109](https://gitee.com/YHN282615109) - **CSDN博客**:[qq_32257509](https://blog.csdn.net/qq_32257509) ## 版权声明 本软件为作者原创独立开发,保留所有权利。 - 未经授权禁止二次上传、倒卖、修改后冒充原创 - 本软件仅供个人学习/交流使用,禁止用于商业用途 © 2026 叶海宁 · All Rights Reserved