? Meloplay
Meloplay 是一款本地音乐播放器应用,使用 Flutter 构建,播放您设备上的音乐。
? 平台
- Android
- iOS
✨ 特点
- 播放您设备上的音乐
- 后台音频
- 通知控件
- 锁屏控件
- 播放、暂停、下一首、上一首、跳转
- 随机播放和循环播放
- 搜索音乐
- 播放列表(读取、创建、重命名、删除、添加歌曲、移除歌曲)
- 收藏(添加歌曲、移除歌曲)
- 最近播放
- 最常播放
- 艺术家
- 专辑
- 流派
- 歌词
- 均衡器
- 睡眠定时器
- 分享音乐
- 设置
- 主题(多主题)
? 截图
| 启动屏 | 歌曲 | 歌曲列表 |
|---|---|---|
![]() |
![]() |
![]() |
| 播放器 1 | 播放器 2 | 艺术家 |
|---|---|---|
![]() |
![]() |
![]() |
| 专辑 | 流派 | 艺术家 |
|---|---|---|
![]() |
![]() |
![]() |
| 专辑 | 流派 | Drawer |
|---|---|---|
![]() |
![]() |
![]() |
| 关于 | 设置 | 设置橙色 |
|---|---|---|
![]() |
![]() |
![]() |
| 歌曲橙色 |
|---|
![]() |
? 依赖项
| 名称 | 版本 | 描述 |
|---|---|---|
| audio_service | 0.18.10 | 一个 Flutter 插件,用于在后台播放音频,支持通知和播放/暂停/停止/跳转控件。 |
| bloc | 8.1.2 | 一个可预测的状态管理库 |
| flutter_bloc | 8.1.3 | Flutter Widgets,可以轻松实现 BLoC 设计模式 |
| hive | 2.2.3 | 一个轻量级且极快的键值数据库 |
| hive_flutter | 1.1.0 | Flutter 的 Hive 数据库实现 |
| flutter_launcher_icons | 0.13.1 | 一个为 Flutter 应用提供图标的包 |
| just_audio | 0.9.34 | 一个功能丰富的 Flutter 音频播放器 |
| on_audio_query | 2.9.0 | 一个用于查询 Android 和 iOS 歌曲的 Flutter 插件 |
| package_info_plus | 4.1.0 | Flutter 插件,用于查询应用程序包信息,例如 iOS 上的 CFBundleVersion 或 Android 上的 versionCode。 |
| permission_handler | 10.4.3 | 一个用于权限处理的 Flutter 插件。该插件提供了一个跨平台(iOS、Android)的 API 来请求和检查权限。 |
| rxdart | 0.27.7 | RxDart 是流行 reactiveX API 的实现,用于异步编程,利用了原生的 Dart Streams API。 |
| share_plus | 7.1.0 | 一个 Flutter 插件,通过平台共享 UI 共享内容,在 Android 上使用 ACTION_SEND intent,在 iOS 上使用 UIActivityViewController。 |
| url_launcher | 6.1.12 | 一个用于在移动平台上启动 URL 的 Flutter 插件。 |
? 安装
先决条件
- Flutter
- Android Studio / Xcode
设置
- 克隆仓库
git clone
- 安装依赖项
dart pub get
- 运行应用
flutter run
❗ 权限
Android
<!-- url_launcher -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
<!-- Android 13+ notification -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- !DANGER! Delete, update songs/playlists -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- Android 12 or below -->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29"
/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Android 13 or greater -->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- Audio service -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
iOS
<!-- url_launcher -->
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
</array>
<key>NSAppleMusicUsageDescription</key>
<string>$(PROJECT_NAME) requires access to media library</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
? 贡献指南
欢迎 Pull requests。对于重大更改,请先打开一个 issue 来讨论您想进行的更改。
? 许可证
根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE。
? 联系方式
? 展示您的支持
如果您喜欢这个项目,请给一个 ⭐️!















