# XMSLEEP
**Repository Path**: watching/XMSLEEP
## Basic Information
- **Project Name**: XMSLEEP
- **Description**: 一款白噪音应用
- **Primary Language**: Kotlin
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-28
- **Last Updated**: 2025-11-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
📱 XMSLEEP
一个专注于白噪音播放的 Android 应用,帮助您放松、专注和入眠。
[](LICENSE)
[](https://kotlinlang.org/)
[](https://www.android.com/)
[下载应用](#下载) • [功能特性](#功能特性) • [使用说明](#使用说明) • [更新日志](#更新日志)
**Language**: 中文 | [English](README_EN.md)
## 📱 屏幕截图
---
## 📱 关于
XMSLEEP 是一个专注于白噪音播放的 Android 应用,提供多种自然声音帮助您放松、专注和入眠。应用采用 Material Design 3 设计规范,界面简洁美观,操作流畅。
## ✨ 功能特性
### 🎵 音频功能
- **多种白噪音**:提供雨声、篝火、雷声、猫咪呼噜、鸟鸣、夜虫等多种自然声音
- **网络音频**:支持从 GitHub 动态加载更多音频资源
- **无缝循环**:音频支持无缝循环播放,提供沉浸式体验
- **音量控制**:支持单独调节每个声音的音量,或一键调整所有声音
### 🎨 界面与体验
- **精美动画**:内置声音配有 webp 动画,增强视觉体验
- **Material Design 3**:采用最新的 Material Design 3 设计规范
- **主题切换**:支持浅色/深色模式切换,适配系统主题
- **自定义主题**:多种颜色主题可选,支持动态颜色
### ⚙️ 实用功能
- **倒计时功能**:设置自动停止播放的时间,帮助您控制使用时长
- **默认播放区域**:支持将常用声音添加到默认播放区域,快速访问
- **收藏功能**:收藏喜欢的白噪音声音
- **全局浮动按钮**:显示正在播放的声音,支持快速暂停和展开查看
- **自动更新**:支持通过 GitHub Releases 自动检查更新
## 🛠️ 技术栈
- **Kotlin** - 主要开发语言
- **Jetpack Compose** - 现代化 UI 框架
- **Material Design 3** - UI 设计系统
- **ExoPlayer/Media3** - 音频播放引擎,支持无缝循环
- **OkHttp** - 网络请求和文件下载
- **Gson** - JSON 解析
- **Kotlinx Serialization** - JSON 序列化
- **Coil** - 图片加载
- **WebP** - 动画支持(声音卡片动画)
- **MaterialKolor** - 动态主题色生成
- **Accompanist** - Pull-to-refresh 支持
## 📦 当前版本
- **版本号**: 2.0.8
- **Version Code**: 28
- **最低支持**: Android 8.0 (API 26)
- **目标版本**: Android 15 (API 35)
## 🚀 下载
最新版本可在 [GitHub Releases](https://github.com/Tosencen/XMSLEEP/releases) 下载。
## 📋 构建要求
- **Android Studio**: Hedgehog | 2023.1.1 或更高版本
- **JDK**: 17 或更高版本
- **Android SDK**: API 33 或更高版本
- **Gradle**: 8.0 或更高版本
## 🔨 构建步骤
1. **克隆仓库**
```bash
git clone https://github.com/Tosencen/XMSLEEP.git
cd XMSLEEP
```
2. **配置 Gradle**
- 复制 `gradle.properties.example` 为 `gradle.properties`
- (可选)配置 GitHub Token 以提升 API 限制
3. **打开项目**
- 使用 Android Studio 打开项目
- 同步 Gradle 依赖
4. **运行项目**
- 连接设备或启动模拟器
- 点击运行按钮
## 📖 使用说明
### 基本操作
1. **播放声音**:点击声音卡片开始播放,再次点击停止
2. **调整音量**:播放时点击卡片右下角的音量图标,可以单独调节每个声音的音量
3. **设置倒计时**:点击右下角的倒计时按钮,设置自动停止时间
### 界面操作
4. **切换主题**:点击左上角的主题切换按钮,在浅色和深色模式之间切换
5. **自定义设置**:在设置页面可以调整主题颜色、隐藏动画等
6. **默认播放区域**:点击声音卡片标题,选择"默认"可将声音添加到默认播放区域
7. **收藏功能**:点击声音卡片标题,选择"收藏"可将声音添加到收藏列表
### 高级功能
8. **全局浮动按钮**:当有声音播放时,会出现浮动按钮,点击可展开查看正在播放的声音
9. **长按拖动停止**:长按浮动按钮可拖动,拖动到底部红色区域可停止所有播放
## 📝 更新日志
### v2.0.8 (2025-11-26)
- 🎨 **主题优化**:深色模式卡片颜色完全跟随应用主题
- 🍃 **Toast改进**:轻提示弹窗背景完全跟随深浅色主题
- 🔒 **固定检查**:未下载的卡片禁止固定,仅显示提示
- 📱 **远程音频**:删除404错误的篝火卡片
### v2.0.7 (2025-11-17)
- 🎛 **预设优化**:预设模块显示逻辑调整,清空/切换预设时行为更合理
- 🧩 **预设标签**:预设 1/2/3 标签支持左右滑动,长文本不再被截断
- ▶️ **浮动播放**:展开时自动收起悬浮按钮,避免界面重叠
- 🎬 **卡片动画**:播放列表中的音频卡片停止后支持统一的左滑消失动画
### v2.0.6 (2025-11-14)
- 🎨 **UI优化**:浮动播放按钮全面优化(动画、投影、布局)
- 🐛 **修复**:修复远程音频无法控制和点击穿透问题
- 🆕 **新功能**:新增全局异常处理和崩溃页面
- 🌍 **国际化**:补全所有英文翻译(100+条)
- 🎨 **主题**:默认主色调整,标语颜色优化
### v2.0.5
- 🎵 **功能**:实现新版浮动播放按钮(吸附式交互)
- 🔧 **优化**:代码重构和模块化
### v2.0.4
- 🔒 **安全**:网络安全配置优化
- 📦 **优化**:音频文件和 APK 体积优化
### v2.0.3
- 🎨 **改进**:WebP 动画封面显示优化
- 🐛 **修复**:倒计时停止播放问题修复
查看完整更新日志:[GitHub Releases](https://github.com/Tosencen/XMSLEEP/releases)
## 📚 文档
更多技术文档请查看 [docs](./docs/) 目录:
- [音频架构设计](./docs/AUDIO_ARCHITECTURE.md) - 音频资源管理架构设计文档
- [音频资源管理](./docs/AUDIO_RESOURCES.md) - 音频资源管理说明
- [声音模块资源清单](./docs/SOUND_MODULES_RESOURCES.md) - 声音模块资源清单
## ⚠️ 声音来源说明
本应用中的声音来源如下:
- **内置声音**:来自开源音频资源库
- **网络声音**:来自 [moodist](https://github.com/remvze/moodist) 项目,遵循 MIT 开源许可协议
- **第三方资源**:部分声音来自第三方提供商,遵循相应的许可协议
- 遵循 **Pixabay Content License** 的声音:[Pixabay Content License](https://pixabay.com/service/license-summary/)
- 遵循 **CC0** 的声音:[Creative Commons Zero License](https://creativecommons.org/publicdomain/zero/1.0/)
## 📄 许可证
本项目采用 [MIT License](LICENSE) 许可证。
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
### 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 👤 作者
**Tosencen**
- GitHub: [@Tosencen](https://github.com/Tosencen)
## 🙏 致谢
- [moodist](https://github.com/remvze/moodist) - 网络音频资源来源
- [Material Design 3](https://m3.material.io/) - UI 设计规范
- [MaterialKolor](https://github.com/material-foundation/material-color-utilities) - 动态颜色方案
---
**⭐ 如果这个项目对您有帮助,请给个 Star!**
© 2025 XMSLEEP. All rights reserved.