? Meloplay

Meloplay 是一款本地音乐播放器应用,使用 Flutter 构建,播放您设备上的音乐。

? 平台

  • Android
  • iOS

✨ 特点

  • 播放您设备上的音乐
  • 后台音频
  • 通知控件
  • 锁屏控件
  • 播放、暂停、下一首、上一首、跳转
  • 随机播放和循环播放
  • 搜索音乐
  • 播放列表(读取、创建、重命名、删除、添加歌曲、移除歌曲)
  • 收藏(添加歌曲、移除歌曲)
  • 最近播放
  • 最常播放
  • 艺术家
  • 专辑
  • 流派
  • 歌词
  • 均衡器
  • 睡眠定时器
  • 分享音乐
  • 设置
  • 主题(多主题)

? 截图

启动屏 歌曲 歌曲列表
Splash Songs Song sheet
播放器 1 播放器 2 艺术家
Player 1 Player 2 Artists
专辑 流派 艺术家
Albums Genres Artist
专辑 流派 Drawer
Album Genre Drawer
关于 设置 设置橙色
About Settings Settings orange
歌曲橙色
Songs orange

? 依赖项

名称 版本 描述
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

设置

  1. 克隆仓库
git clone
  1. 安装依赖项
dart pub get
  1. 运行应用
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

? 联系方式

? 展示您的支持

如果您喜欢这个项目,请给一个 ⭐️!

GitHub

查看 Github