Freezer をベースにした代替 Deezer 音楽ストリーミングおよびダウンロード クライアント。コードベース全体が、最新バージョンの Flutter、dart SDK、Android と互換性を持つように更新/書き直されました (現在のビルド ターゲットは API レベル 34)。
古い Freezer アプリのすべての機能が復元されました。特に注目すべき点は次のとおりです。
すべてのログインオプションを復元しました
復元された最高品質のストリーミングおよびダウンロード オプション (プレミアム アカウントが必要、無料アカウントは MP3 128kbps に制限)
Android 11以降の外部ストレージ(SDカード)へのダウンロードをサポート
ホーム画面を復元し、新しい Flow & Mood スマート プレイリスト オプションを追加しました
ログアウトを修正 (再起動の必要がなくなりました)
キュー画面とキュー処理(シャッフルと再配置)の改善/修正
非同期の歌詞もサポートするように歌詞画面を更新しました
水平/タブレットビューにさらに適合するために、UI をいくつか変更しました。
最新の Flutter & Dart SDK バージョンを完全にサポートするためにコードベース全体を更新しました
gradle バージョン 8.5.1 に更新されました
含まれている C ライブラリ (openssl および opencrypto) を削除し、カスタム ネイティブ Java 実装に置き換えました。
付属の decryptor-jni c ライブラリをカスタムのネイティブ Java 実装に置き換えました。
null 安全性の実装
カスタム just_audio および audio_service プラグイン バージョンの必要性を削除し、最新バージョンの公式プラグインを使用するようにソース コードをリファクタリングしました。
その他複数の修正
最新の Flutter SDK をインストールします: https://flutter.dev/docs/get-started/install
(オプション) リリース ビルドのキーを生成します: https://flutter.dev/docs/deployment/android
ダウンロードソース:
git clone https://github.com/DJDoubleD/ReFreezer git サブモジュールの初期化 gitサブモジュールの更新
プロジェクトのlib
フォルダーに.env
ファイルを作成し、次の内容を追加します。
# Deezer API credentials
deezerClientId = '';
deezerClientSecret = '';
# LastFM API credentials
lastFmApiKey = ''
lastFmApiSecret = 'Your_LastFM_API_Secret'
生成されたファイルをビルドします。
次のスクリプトを使用して、サブモジュールとメイン プロジェクトで生成されたクラスを (再) ビルドします。
.run_build_runner.ps1
または、関連するサブモジュールで次のコマンドを手動で実行して、生成されたファイルを (再) ビルドします。
フラッターパブゲット dart run build_runner cleandart run build_runner build --delete-conflicting-outputs
コンパイル:
flutter build apk --split-per-abi --release
注: 独自のキーを使用するか、 flutter build apk --debug
使用してデバッグをビルドする必要があります。
Java JDK フォルダーが PATH 変数にあることを確認し、プロジェクトの ./android フォルダーで次のコマンドを実行します。
keytool -genkey -v -keystore ./keys.jks -keyalg RSA -keysize 2048 -validity 10000 -alias
コマンドラインに表示される指示に従って、キーストアの必要なフィールドに入力します。
./android 内 (手順 1 の key.jks ファイルの隣) に、次の内容のファイルkey.properties
を作成します。
storePassword=
keyPassword=
keyAlias=
storeFile=../keys.jks
ReFreezer は著作権侵害を目的として開発されたものではなく、教育的および個人的な使用を目的として開発されました。あなたの国でこれを使用することは違法である可能性があります。 ReFreezer の使用方法については責任を負いません。
ReFreezer はDeezer のパブリック API と内部 API の両方を使用しますが、Deezer によっていかなる形でも承認、認定、その他の承認を受けていません。
Deezer のブランドと名前は、それぞれの所有者の登録商標です。
ReFreezer はDeezer と提携、スポンサーシップ、または承認を行っていません。