音乐
从手机下载并播放歌曲。
您也可以选择与 Firebase 同步,以便轻松使用多个设备。
轻松播放和下载歌曲


查看所有歌曲和按艺术家分类


自动生成的专辑以及自定义专辑


随机播放并查看队列

此应用是 此应用 的移动版本,该应用已过时,即将更新。
如果您有任何问题或建议,请随时 打开一个拉取请求 或 提交一个问题
如果您想自定义或了解更多关于项目的信息,请 点击这里。
下载和安装
对于 Android,您可以直接下载最新发布的已构建版本 点击这里。请先生成 API 密钥,然后从最新版本下载 APK。
如果您使用的是 iOS 或想自己下载并构建项目,请按照以下步骤操作。
API 密钥
该应用程序需要 Napster API 密钥 才能运行。您还可以选择添加 Firebase 进行同步。
创建 API 密钥的步骤可以在 这里 查看。
创建好这些之后,您就可以继续运行应用程序了。
您需要在应用程序中直接输入 API 密钥。
构建依赖项
首先 安装 Flutter。之后运行
flutter pub get
这将安装依赖项。
测试
要运行为该应用程序编写的测试,请运行
flutter test
不通过常规安装运行
如果您想测试该应用程序是否正常工作,请连接设备或运行模拟器。要启动 profile 模式应用程序(运行速度比 debug 模式快,但没有开发者功能),请运行
flutter run --profile --flavor dev
构建
对于 Android
签名应用
-
创建密钥库
如果您已有密钥库,请跳至下一步。如果没有,请通过在命令行运行以下命令来创建一个
在 Mac/Linux 上,使用以下命令
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key在 Windows 上,使用以下命令
keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key此命令将
key.jks文件存储在您的主目录中。如果您想将其存储在其他位置,请更改传递给-keystore参数的值。- keytool 命令可能不在您的路径中——它是 Java 的一部分,而 Java 是作为 Android Studio 的一部分安装的。要查找具体路径,请运行 flutter doctor -v 并找到 'Java binary at:' 之后打印的路径。然后使用该完整路径,将(末尾的)java 替换为 keytool。如果您的路径包含空格分隔的名称,例如 Program Files,请使用平台适用的表示法。例如,在 Mac/Linux 上使用 Program\ Files,在 Windows 上使用 "Program Files"。
-storetype JKS标记仅在 Java 9 或更高版本需要。从 Java 9 版本开始,密钥库类型默认为 PKS12。
-
从应用程序引用密钥库
创建一个名为
android/key.properties的文件,其中包含对您的密钥库的引用storePassword=<password from previous step> keyPassword=<password from previous step> keyAlias=key storeFile=<location of the key store file, such as /home/<user name>/key.jks>
构建 APK
-
“fat” APK
flutter build apk --flavor prod这将构建一个“fat”APK,其中包含为所有架构编译的代码,这意味着它可以运行在所有 Android 设备上。
-
拆分 APK
flutter build apk --split-per-abi --flavor prod这将根据架构将其拆分成不同的 APK,从而减小应用大小,但它只适用于具有特定架构的手机。
构建完成后,APK 将位于 build/app/outputs/flutter-apk/app-prod-release.apk。要安装,请将 APK 传输到您的手机上并进行安装,或者通过 USB 网络共享连接您的设备并运行
flutter install
安装应用程序时,您可能会看到此弹出窗口
您可以安全地点击“仍然安装”。
对于 iOS
请参阅 Flutter 的 iOS 发布文档。
问题
iOS
该应用程序是使用 Android 测试设备构建的,因此在 iOS 上可能无法完全按预期运行。总的来说,UI 的外观和功能将相同,但平台特定的功能(如通知)可能不同。例如,Android 支持进度通知,而 iOS 不支持。
Firestore
有一个 ios/Runner/GoogleService-Info.plist 文件,其中包含一个用于连接 Firebase 的模拟 plist 文件,因为 iOS 的 cloud_firestore 插件需要它存在,否则将无法构建。这不是一个很好的解决方案。