Альтернативный клиент Deezer для потоковой передачи и загрузки музыки, основанный на Freezer. Вся кодовая база была обновлена/переписана для совместимости с последней версией flutter, dart SDK и Android (текущая цель сборки — уровень API 34).
Восстановлены все функции старого приложения Freezer, в частности:
Восстановлены все параметры входа.
Восстановлены параметры потоковой передачи и загрузки высочайшего качества (требуется премиум-аккаунт, бесплатные аккаунты ограничены MP3 128 кбит/с).
Поддержка загрузки на внешнее хранилище (sdcard) для Android 11 и более поздних версий.
Восстановлен главный экран и добавлены новые параметры умного плейлиста Flow & Mood.
Исправлен выход из системы (больше нет необходимости в перезагрузке)
Улучшен/исправлен экран очереди и обработка очереди (перемешивание и перестановка)
Обновлен экран текстов песен, теперь он поддерживает несинхронизированные тексты песен.
Некоторые незначительные изменения пользовательского интерфейса для лучшего размещения горизонтального просмотра или просмотра на планшете.
Обновлена вся кодовая база для полной поддержки последних версий Flutter и Dart SDK.
Обновлено до версии Gradle 8.5.1.
Удалены включенные библиотеки C (openssl и opencrypto) и заменены собственной собственной реализацией Java.
Заменена включенная библиотека c decryptor-jni на собственную реализацию Java.
Реализована нулевая безопасность
Устранена необходимость использования пользовательских версий плагинов just_audio и audio_service, а также переработан исходный код для использования последней версии официальных плагинов.
Множество других исправлений
Установите последнюю версию Flutter SDK: https://flutter.dev/docs/get-started/install.
(Необязательно) Сгенерируйте ключи для сборки выпуска: https://flutter.dev/docs/deployment/android
Источник загрузки:
git-клон https://github.com/DJDoubleD/ReFreezer инициализация подмодуля git обновление подмодуля git
Создайте файл .env
в папке lib
проекта и добавьте следующий контент:
# 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 (рядом с файломkeys.jks из шага 1) создайте файл key.properties
со следующим содержимым:
storePassword=
keyPassword=
keyAlias=
storeFile=../keys.jks
ReFreezer был разработан не для пиратства, а для образовательных и частных целей. Использование этого устройства в вашей стране может быть незаконным! Я не буду нести ответственность за то, как вы используете ReFreezer .
ReFreezer использует как общедоступный, так и внутренний API Deezer, но не одобрен, не сертифицирован или иным образом не одобрен Deezer.
Торговая марка и название Deezer являются зарегистрированной торговой маркой соответствующего владельца.
ReFreezer не имеет никакого партнерства, спонсорства или одобрения с Deezer.