1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/leon_xf-biu-video

Клонировать/Скачать
README.md 72 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 08:59 a342d8f

BiuVideo

📢 Объявление

  • Этот проект больше не поддерживается, для получения последней информации смотрите BiliHub

📄 Краткое описание проекта

Получение данных через интерфейс BiliBili для просмотра видео, аудио и изображений в режиме онлайн, их прослушивания, кэширования и т. д.

⚠ Важные замечания

package com.leon.biuvideo.values.apis;

public class ApiKeys {
    public static final String AMAP_KEY = "AMAP_KEY";
    public static final String BAIDU_KEY = "BAIDU_KEY";
}
  • Все файлы, которые были удалены в этой версии, были удалены.
  • Большинство удалённых файлов — это файлы из предыдущей версии.

📘 Журнал разработки

2021/08/17

  • Исправлена проблема сбоя из-за NPE.
    • Проблема сбоя при входе была исправлена.
  • Изменён способ получения имени версии.

2021/05/21

  • Версия V3 объединена с основной веткой.
  • Проект синхронизирован с GitHub.

2021/05/20

  • Исправление известных ошибок.
    • Улучшены некоторые функции.
  • Файлы проекта очищены.
    • Первый публичный тест версии V3 завершён.

2021/05/19

  • Оптимизированы результаты поиска сериалов.
    • Внесены изменения в функцию входа в систему.
  • Исправлены проблемы с загрузкой комментариев на подробной странице.
    • Видео и страницы сериалов унифицированы.
    • Страница с подробными комментариями всё ещё требует доработки.

2021/05/18

  • Исправлено несколько известных ошибок.
    • Оптимизировано несколько функций.
    • Оптимизирован код функции пожертвований.

2021/05/17

  • Частично оптимизирован код.
    • Исправлено несколько известных ошибок.
    • Ресурсы, такие как сериалы и фильмы, могут вызывать аномалии и требуют исправления.

2021/05/16

  • Добавлены всплывающие окна, связанные с приложением.

2021/05/15

  • Частичная оптимизация кода и функций.
    • Поскольку в ранней разработке не было обнаружено фрагментации одного действия, которая вызывает серьёзные трудности в последующей реконструкции приложения, мы можем только временно оставить это таким образом 😫.
    • Если вы столкнётесь с чёрным или белым экраном (на новой открытой странице нет содержимого), вы можете переключиться на фоновый режим, а затем вернуться на передний план, чтобы решить проблему чёрного и белого экрана.
    • Добавлен список благодарностей.

2021/05/14

  • Завершена работа над страницей управления загрузками.
    • Поскольку эта версия не загружает субтитры одновременно с видео во время загрузки видео, она использует существующий проигрыватель устройства для воспроизведения видео.

2021/05/13

  • ПростойSnackBar был оптимизирован.
  • Добавлено определение отсутствия сети.
    • Из-за того, что в ранней версии видео типа «фильм» воспроизводится на странице сериала, видео типа «фильм» теперь воспроизводится на видеостранице, и эта проблема будет решена позже.

2021/05/12

  • Добавлена статистика Baidu.
  • Оптимизирована загрузка списка.
    • Основная оптимизация направлена на DataLoader, поскольку все функции загрузки по запросу являются избыточными кодами, этот класс предназначен для SmartRefreshRecyclerView.

2021/05/11

  • Добавлена функция загрузки аудио.
    • Изменена страница воспроизведения аудио.
  • Оптимизирована функция загрузки списка.

2021/05/10

  • Частичная оптимизация кода.
    • Решена проблема 403.

2021/05/09

  • Из-за личных причин GitHub временно не обновляется.
  • На странице сериала добавлена функция загрузки.
    • При загрузке может возникнуть проблема с кодом ошибки 403, которую необходимо решить.

2021/05/08

  • Прогресс загрузки задач, размер загруженных данных и другие параметры можно динамически обновлять во время загрузки.
    • Некоторые функции всё ещё нуждаются в дальнейшей оптимизации.

2021/05/07

  • Устранены проблемы, оставшиеся после предыдущего коммита.
    • «Ария» аннотации не работают, проблема ещё не решена.

2021/05/06

  • Исправлены ошибки, оставленные в ранней разработке.
  • Функция загрузки завершена.
    • Выбранное качество не существует, автоматическое получение самого высокого качества требует решения.

2021/05/05

  • Работа над страницей взаимодействия загрузки завершена.
    • Часть интерфейса/функций всё ещё нуждается в доработке.

2021/04/30

  • Добавлен инструмент загрузки.
    • Во время Rebuild Project может появиться следующая ошибка, пока не найдено решение.
    • ~~Execution failed for task ':app:compileDebugJavaWithJavac'.

    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0~~

2021/04/29

  • Большинство интерактивных функций завершены.

2021/04/28

  • Страница сериала завершена.

2021/04/27

  • Часть интерактивных функций завершена.

2021/04/26

  • Проблема смещения элементов управления на странице выбора сериала после переключения решена.

2021/04/24

  • Большая часть функций страницы воспроизведения сериала завершена.
    • Проблема со страницей комментариев всё ещё существует.

2021/04/23

  • Добавлена страница воспроизведения сериала, но функция ещё не реализована.
    • Большая часть кода на странице воспроизведения видео была изменена.

2021/04/22

  • Переключение чёткости при воспроизведении видео приводит к путанице в выборе, проблема решена.

2021/04/20

  • Добавлена функция ускорения.
    • Низкое ускорение может вызвать мерцание субтитров, эта проблема всё ещё не решена.
  • Воспроизведение видео завершено.
    • Переключение субтитров ещё не завершено.
  • Переключение субтитров завершено.

2021/04/19

  • Некоторые известные ошибки исправлены.
    • Необходимо оптимизировать функцию включения/выключения субтитров при воспроизведении видео.
  • Включена и оптимизирована функция включения/выключения субтитров.
    • Другие функции также были оптимизированы.
  • Всплывающее окно выбора качества видео добавлено, но функция не реализована.

2021/04/18

  • Удалён класс анализа данных субтитров и класс представления субтитров, функция субтитров реализована с помощью технологии CV.
    • Функция субтитров всё ещё нуждается в дальнейшей оптимизации.

2021/04/17

  • Класс анализа данных субтитров добавлен, воспроизведение видео частично реализовано.
    • Существует проблема с классом анализа данных субтитров, и проблема фрагментации нового созданного фрагмента при переключении всё ещё существует.

2021/04/15

  • Интерфейс воспроизведения музыки в основном завершён.
    • Некоторые функции ещё не завершены.

2021/04/14

  • Класс анализа музыкальных данных добавлен, функция воспроизведения музыки частично реализована.

2021/04/13

  • Большая часть взаимодействия на странице воспроизведения завершена.
    • Музыка добавлена на страницу воспроизведения, но функция ещё не реализована.

2021/04/12

  • Добавлена специальная страница, функция ещё не реализована.
  • Специальная страница имеет частичную функцию.
  • Функции специальной страницы в основном завершены.
    • Галерея добавлена.

2021/04/11

  • Файл в проекте очищен.
  • Известные ошибки устранены.

2021/04/10

  • Пользовательская страница добавлена, включая страницу загрузки видео и аудио.
    • Этот коммит ещё не тестировался.
  • Четыре подстраницы пользовательской страницы завершили загрузку данных.

2021/04/09

  • Страница пользователя Bilibili добавлена.

2021/04/08

  • Добавлена страница комментариев к видео.
    • Каждый комментарий имеет проблему с комментарием второго уровня.
    • Рекомендация видео на странице введения имеет проблему с фоном.
  • Некоторые известные ошибки устранены.
  • Добавлена подробная страница комментариев, позволяющая просматривать все комментарии первого уровня.
    • Рекомендуется использовать реальное устройство для отладки во время тестирования, поскольку виртуальная машина может привести к сбою при запуске через IDE, и сбой может произойти при втором входе в VideoCommentDetailFragment или VideoFragment. Если он не запущен через IDE, сбоя не произойдёт. Добавление VideoWithFlvParser
  • Было добавлено VideoWithFlvParser.
  • Из-за невозможности найти способ синхронизации звука и изображения, в этой версии отказались от использования метода получения потока данных dash.
  • Поскольку метод получения потока данных dash не используется, в данной версии без входа можно получить видео только в качестве 480p.

2021/04/04 Проект уже загружен на GitHub (https://github.com/LeonNOV/BiuVideo).

2021/04/03

  • Были добавлены различные виды View, необходимые для плеера. Однако эти виды ещё не были протестированы.
  • Были исправлены некоторые проблемы с видеоплеером.

2021/04/02

  • Был изменён нижний навигационный бар главной страницы.
  • Была добавлена зависимость DKVideoPlayer, которая служит основой для видеоплеера этого приложения.

2021/04/01

  • В функцию поиска были внесены изменения. Часть кода функции поиска ещё не была очищена.
  • Был внесён ряд изменений в код. Нижний навигационный бар на главной странице всё ещё нуждается в доработке.

2021/03/31

  • Адаптеры для каждой страницы результатов поиска уже добавлены, но часть кода для каждой страницы всё ещё требует доработки.
  • Страница результатов поиска в основном завершена.

2021/03/30

  • Макет страницы результатов поиска завершён, загрузка данных ещё не завершена.
  • Необходимый анализатор для функции поиска завершён.
  • Некоторые небольшие функции в функции поиска были улучшены.

2021/03/29

  • История была улучшена. Поскольку есть проблема с сочетанием погружения и возврата, эта версия удаляет погружение и использует полноэкранный режим отображения.
  • Добавлена страница результатов поиска, и некоторые функции на этой странице требуют улучшения.

2021/03/28

  • Анализатор истории был добавлен.
  • Элемент макета истории был изменён.
  • Комментарии были добавлены.

2021/03/27

  • Функция погружения была добавлена.

2021/03/26

  • Часть кода была изменена, но текущая версия содержит незавершённый код. PopularTopListFragment, PopularTopListSubFragment и PopularTopListParser ещё не завершены.
  • Горячая страница в основном завершена. Проблема с отображением всех видео, которые этот пользователь разместил в верхней части списка, всё ещё существует.
  • BaseLazySupportFragment был добавлен и используется для выполнения ленивой загрузки данных. Он должен использоваться вместе с ViewPager2. Часть страниц, которым требуется BaseLazySupportFragment, ещё не заменена.

2021/03/25

  • Макет PopularFragment был изменён. Элемент popular_hot_list на странице PopularFragment всё ещё нуждается в изменении.
  • Анализатор для всего сайта завершён. 2021/03/15
  • Доработана функция «Посмотреть позже».
  • Доработан другой код.
  • Добавлена страница с тегами и её анализатор данных.

2021/03/14

  • Обнаружено, что страница не использует динамические данные, временно используется список популярных запросов. Изменён способ загрузки данных на страницу.
  • Добавлена функция «Посмотреть позже».
    • Пункт «Макет элемента ещё нужно доработать» был удалён.

2021/03/13

  • Добавлен интерфейс для получения динамических данных. Поскольку существует слишком много типов динамических данных, требуется время для их анализа.

2021/03/12

  • На главной странице можно динамически переключать стили просмотра рекомендаций.
  • Доработан фрагмент RecommendFragment.
  • После выхода из OrderFragment возникает исключение NPE, источник проблемы пока не найден.

2021/03/11

  • Исправлена проблема с неправильным порядком координат в LocationUtil.geoLocation(Context context, double latitude, double longitude). Широта должна быть указана первой, а долгота — второй.
  • Переработан интерфейс настройки стиля просмотра рекомендаций.

2021/03/10

  • Функция рекомендаций на главной странице завершена.
    • При переходе к фрагменту RecommendFragment возникает ошибка.
  • Добавлены функции настройки стиля рекомендаций, которые могут быть установлены как одноколоночный или двухколоночный. Эта функция ещё не доработана.
  • Стиль рекомендаций изменён.

2021/03/09

  • Завершена работа над погодным модулем. Можно выбрать отказ от авторизации для определения местоположения, тогда местоположение будет задаваться вручную через настройку местоположения. При выборе авторизации местоположение будет автоматически устанавливаться на основе текущего местоположения и может быть изменено при перемещении.
  • Код фрагмента SettingsFragment требует доработки.
  • Устранено несколько небольших ошибок.
  • Устранены некоторые ошибки в погодном модуле.
  • Созданы два абстрактных класса BaseLazySupportFragment и BaseLazySupportFragmentWithSrr. Первый класс имеет функцию ленивой загрузки по умолчанию, которая может быть унаследована при необходимости создания пользовательского макета. Второй класс не требует указания файла макета XML, подходит для страниц с данными, отображаемыми в виде списка, и требует только перезаписи метода initView(). Эти два класса находятся на стадии тестирования и их код ещё не оптимизирован.

2021/03/08

  • Доработана настройка местоположения на странице настроек.

2021/03/07

  • Добавлены фрагменты DownloadManagerFragment (страница управления загрузкой) и LoginFragment (страница входа).
  • Изменена часть кода.
  • Изменён SimpleTopBar.
  • Добавлен фрагмент LoginFragment для страницы входа.
  • Улучшены комментарии к некоторым классам и доработан остальной код.

2021/03/06

  • Оптимизирована часть кода, но некоторые части ещё требуют оптимизации.
  • Доработан остальной код.
  • Добавлен фрагмент DownloadedFragment, который ещё требует доработки.

2021/03/05

  • Реорганизован FavoriteUserAdapter, добавлена боковая панель меню для элементов.
    • FavoriteUserAdapter переименован в MyFollowsAdapter.
  • Реорганизован HistoryFragment, добавлена функция динамического создания элементов в зависимости от типа ресурса.
  • Не решены проблемы:
    • В настоящее время в TabLayout и ViewPager возникают проблемы с повторным открытием PopularFragment, OrderFragment и FavoritesFragment, после чего расстояние прокрутки TabLayout становится больше, а содержащиеся в нём фрагменты не отображаются.
  • Исправлено расстояние прокрутки TabLayout.

2021/03/04

  • Доработано получение и установка adcode и другие функции.
  • Добавлен класс SimpleThread, используемый для выполнения одного потока, который не может выполнять несколько потоков одновременно. Пример использования:
SimpleThread.executor(new Runnable() {
    @Override
    public void run() {
        // Do something...
    }
});
  • Новый добавленный класс WeatherService предназначен для фонового получения данных о погоде каждые полчаса. Способ получения данных ещё не определён.
  • Доработан класс WeatherService, который получает информацию о погоде каждые полчаса и отправляет её через широковещательную рассылку.
  • Добавлен класс Actions, предназначенный для хранения всех действий, добавленных с помощью intentFilter. Некоторые действия ещё не добавлены, они будут добавлены позже.

2021/03/03

  • Доработаны функции включения и отображения погодного модуля на странице настроек и главной странице.
  • Добавлена функция получения adcode, но она ещё не доработана.

2021/03/02

  • Добавлены функции переключения погодного модуля и определения местоположения.
  • Погодный модуль доработан, LocationUtil нужно создать только один раз, чтобы получить информацию о местоположении, вызвав метод getAddress(). Возвращаемое значение включает провинцию, город, район и улицу.

2021/03/01

  • Ветвь V2 больше не обновляется, последующие обновления будут происходить в этой ветви.
  • Объединён тестовый код.
  • Проект нуждается в масштабной очистке.
  • Изменены функции главной страницы, связанные с погодой.
    • В мобильной сети невозможно определить местоположение с использованием общедоступного IP.
    • Можно использовать встроенное определение местоположения мобильного телефона для получения информации о местоположении.

Часть текста, выделенная курсивом, не переведена, так как содержит технические термины и названия функций, которые не удалось идентифицировать. Показать текст, текст при нажатии, new View.OnClickListener() { @Override public void onClick(View v) { // Сделать что-то... } }, SimpleSnackBar.LENGTH_SHORT).show();


В дальнейшем будут заменены все SnackBar.

**2021/02/10**

Завершена основная часть работы над функцией переключения тем.
*Поскольку функция переключения тем затрагивает множество аспектов, необходимо постепенно улучшать её в будущем.*

Использование формата:
``` java
// Инициализация локального широковещательного приёмника
ThemeColorChangeBroadcastReceiver themeColorChangeBroadcastReceiver = new ThemeColorChangeBroadcastReceiver();
themeColorChangeBroadcastReceiver.initBroadcast(getApplicationContext());
themeColorChangeBroadcastReceiver.setChangeThemeColorListener(new ThemeColorChangeBroadcastReceiver.ChangeThemeColorListener() {
    @Override
    public void changThemeColor(int position) {
        // Изменить текущий макет темы
    }
});

На экране настроек добавлена опция «Исходное изображение», основная часть кода ещё не написана.

2021/02/06

Создана ветка V2.1, которая будет сосредоточена на изменениях пользовательского интерфейса и не предполагает значительных изменений в функциональности кода.

Добавлена цветовая тема, а также внесены изменения в некоторые названия цветов.

2021/01/31

Исправлена проблема, из-за которой после успешного входа с помощью SMS или учётных данных не происходил переход на главный экран.

2021/01/30

Изменён способ объединения видеофайлов. Использована библиотека FFmpeg для Android для операций объединения аудио и видео. Из-за большого размера библиотеки SO размер APK увеличился примерно на 5 МБ. Так как это версия для тестирования, она поддерживает только архитектуру arm64-v8a.

Устранена проблема с отображением изображений на странице загрузки.

Исправлены известные ошибки.

2021/01/28

Решена проблема невозможности загрузки VIP-ресурсов.

Исправлен ряд ошибок, связанных с выбором некорректных данных в списках.

Изменено поведение при загрузке видео. Сначала загружаются видео и аудиофайлы. Затем они объединяются, и после завершения объединения исходные файлы удаляются. Файлы для загрузки хранятся в папке Temp. Примечание: при первом запуске все файлы в папке Temp будут удалены.

2021/01/26

Исправлены существующие ошибки.

Исправлена ошибка, связанная с появлением сообщения об отсутствии данных на фоне при повторном поиске.

2021/01/23

Исправлена ошибка, из-за которой импортированные данные пользователей через настройки не отображались в списке подписок.

Изменена версия кода.

2021/01/22

Все места, где можно использовать многопоточность и ленивую загрузку, были заменены.

Модифицирована таблица favoriteUp. Данные пользователей, импортированные через настройки, и данные, импортированные из списка подписок, рассматриваются как данные пользователя. При использовании функции очистки данных пользователя они будут удалены.

Модифицирован код функции подписки.

Считается, что SQLiteHelpFactory не имеет практической ценности, поэтому в будущем он будет удалён.

Проведена очистка кода.

Изменена версия номера: 2.5.8-beta.

Исправлены мелкие проблемы.

Видео и списки воспроизведения сериалов теперь имеют функцию просмотра списка загрузок.

Частично изменены файлы макета.

Добавлен «Быстрый доступ к ссылкам на помощь в выборе закладок».

2021/01/21

Часть методов загрузки данных заменена на многопоточную загрузку, а некоторые фрагменты используют отложенную загрузку.

Функция поиска также была переписана с использованием многопоточной загрузки. Из-за недостатка знаний о многопоточности неясно, требуется ли сбор потоков, но в функции поиска используется метод cancelTask из SimpleThreadPool для отмены уже использованных потоков.

Некоторые функции всё ещё не используют многопоточный способ загрузки, и некоторые фрагменты не перешли на отложенную загрузку.

2021/01/20

Исправлены обнаруженные ошибки.

2021/01/19

Полностью упорядочены ресурсы макета.

Удалены неиспользуемые файлы drawable.

Выполнена частичная очистка Java-кода.

Все Toast заменены на Snackbar. Некоторая часть всё ещё требует замены, и в некоторых случаях есть проблемы с отображением.

Основной этап очистки кода завершён, осталось только устранить ошибки.

2021/01/18

Изменения в таблице localOrders. mainId используется для Video (bvid), Bangumi (mediaId), Music (sid) и Article (articleId). subId используется для Bangumi (seasonId), Music (bvid) и article (mid). json используется для хранения данных, которые используются при переходе к соответствующей активности или для отображения данных.

Базовая функциональность локальных подписок завершена.

Весь проект по-прежнему нуждается в масштабной очистке кода.

Код частично очищен. Цвета и ресурсы символов также требуют унификации.

Версия V2 находится на завершающей стадии упорядочения.

2021/01/17

Улучшены VideoActivity, BangumiActivity и ArticleActivity. Таблица article удалена, её заменит localOrders, связанный код ещё не очищен. В таблице localOrders добавлено поле cover, связанный код ещё не завершён.

2021/01/16

Таблицы videoPlayList и musicPlayList удалены. Они будут заменены таблицами localVideoFolders и localOrders. Когда в VideoActivity выбрано красное сердце, появится диалоговое окно выбора папки для добавления в избранное. Первый запуск приложения добавит папку по умолчанию. Воспроизведение списка изменено на «Локальные подписки», чтобы сохранить любимые видео, аудио и статьи локально. Следующая версия будет включать синхронизацию (сохранённые данные будут выборочно синхронизироваться с данными учётной записи B). Эта функция предназначена не для синхронизации, а для обеспечения максимальной автономности.

Добавлены две таблицы SQLite: localVideoFolders и localOrders.

Эта версия сохранит видео, аудио и избранные статьи в локальном формате. Синхронизация будет включена в следующей версии.

2021/01/15

Ошибка e7d4aa8c исправлена.

Изменён процесс получения данных интерфейса, большинство данных интерфейса должны быть получены через Cookie, все классы Parser, получающие данные интерфейса, должны создаваться через конструктор. Cookie можно получить через ParserUtils-getInterfaceRequestHeader (Context context).

2021/01/14

Исправлено очень серьёзное нарушение.

Добавлена функция загрузки сериалов.

Проблемы, требующие решения: После завершения загрузки медиафайлов не удаётся успешно получить локальное широковещательное сообщение (проблема возникает только на главном экране записей о загрузках, решать её не обязательно). Часть видео не загружается (конкретная причина пока неизвестна). Если видео было загружено ранее, а затем удалено, то при последующей загрузке оно не будет отображаться в списке управления кэшем.

2021/01/12–13

Эти два дня не использовались для обновлений по личным причинам.

2021/01/11

Просмотр сериалов был изменён.

2021/01/10

BangumiActivity полностью доработан. Этот коммит может вызвать исключение NPE, и я не знаю, почему его нужно отправлять, возможно, это сделано для того, чтобы предотвратить прерывание непрерывной отправки ( ̄▽ ̄).

2021/01/09

Добавлена BangumiActivity.

Поскольку B не предоставляет функцию онлайн-воспроизведения сериалов, версия V2 не имеет функции онлайн-воспроизведения, она будет добавлена в следующей версии.

2021/01/08

Поиск сериалов в основном завершён.

Код подвергся поверхностной очистке.

2021/01/07

Добавлены инструменты поиска сериалов.

Ошибки, связанные с HTML-кодом в поисковой выдаче, устранены.

Некоторые коды изменены. 2021/01/03

В MainActivity при открытии OrderFragment и последующем входе в систему данные подписки могут не обновляться.

Исправлено несколько известных ошибок.

2021/01/02

Изменён код VideoActivity. Добавлен диалог выбора кэша для сборников: если количество сборников больше 1, то появляется этот диалог, иначе — только диалог выбора качества.

Отмечено, что интерфейс для одиночного сборника ещё нужно доработать. Добавлена функция скачивания сборников. По умолчанию качество — 1080P. Если выбрано качество, доступное только для премиум-подписчиков, а премиум-аккаунт не авторизован, то скачивается максимальное качество для обычных пользователей. Если качество не выбрано, то по умолчанию скачивается максимально доступное.

При отправке изменений в VideoActivity может произойти аварийное завершение работы приложения. Завтра будет доработан VideoActivity, исправление ошибок идёт очень тяжело.

2021/01/01

Текущая версия требует как минимум 2 ГБ оперативной памяти для корректной работы, на устройствах с меньшим объёмом памяти происходит аварийное завершение при переходе к UserActivity.

Изменена логика загрузки видео- и аудиофайлов.

2020/12/31

Добавлен атрибут resourceMark в метод downloadDetailsForMedia. Атрибут уникален и используется для идентификации уже скачанных медиаресурсов. Формат атрибута:

— для видео: subId + «-» + qualityId;

— для аудио: mainId.

2020/12/30

Добавлены список неудачных загрузок и функция повторной загрузки.

Получение данных нужно оптимизировать, чтобы избежать исключений NetworkOnMainThreadException.

2020/12/29

Реализована функция автономного кэширования. Изменены некоторые макеты.

2020/12/28

Исправлены проблемы с автономным кэшированием. Функция автономного кэширования почти готова, динамическая загрузка из кэша через Broadcast пока не реализована. Исправлена ситуация, когда при открытии уже скачанного аудиофайла происходило аварийное завершение.

2020/12/27

Изначально планировалось реализовать функцию списка задач для скачивания, но автор считает себя недостаточно опытным и отказывается от этой идеи. Автономное кэширование почти готово, осталось настроить качество видео.

Функция добавления в избранное и нажатие на аватарку пользователя в специальном разделе неожиданно приводят к ошибкам, требуется доработка.

2020/12/26

Работа над ошибками.

2020/12/25

Подготовка к работе.

2020/12/24

Завершена работа над OrderFragment, который позволяет получить доступ к контенту по подписке. Для использования фрагмента необходимо убедиться, что настройки конфиденциальности позволяют делиться контентом. Вход в аккаунт необходим, если настройки конфиденциальности закрыты.

Есть нерешённые проблемы, ведётся поиск причин. Проблема с 5b7d840d решена.

2020/12/15–22

Нет обновлений из-за учёбы.

2020/12/14

Добавлен OrderFragment, позволяющий получать контент по подписке. При использовании фрагмента необходимо разрешить общий доступ в настройках конфиденциальности. В противном случае потребуется войти в аккаунт.

Проблема с текущей версией пока не решена, ведётся анализ. Проблема с версией 5b7d840d устранена.

2020/12/13

Без прогресса.

2020/12/12

Почти готов HistoryFragment. Ошибки не обнаружены.

Данные загружаются сразу для всех страниц, поэтому требуется время для их отображения. Оптимизация процесса загрузки данных необходима.

Следует учесть, что создание фрагментов и адаптеров для истории основано на типе истории (HistoryType).

Просмотр прямых трансляций пока не реализован, эта функция появится в третьей версии.

2020/12/11

Только добавлен запрос истории просмотров видео, код требует оптимизации.

2020/12/10

Создан VideoHistoryFragment, но функциональность фрагмента не завершена.

Можно отдохнуть, следующая версия выйдет через неделю.

2020/12/09

Создана базовая основа для фрагментов (BaseFragment), которая упрощает создание и использование фрагментов. Исправлена проблема с методом onHiddenChanged() в HomeFragment. Проведена реорганизация четырёх основных фрагментов на главной странице. Добавлен интерфейс для доступа к истории просмотра.

На главной странице добавлен HistoryFragment, однако отображение данных в ViewPager ещё не реализовано.

2020/12/08

Добавлен экран входа (LoginActivity), который позволяет пользователям входить в приложение.

Процесс входа и выхода пользователей почти завершён, необходима оптимизация.

Боковая панель была изменена: меню в верхней части основной активности было перемещено на боковую панель.

Преобразование PreferenceActivity во фрагмент пока не выполнено.

2020/12/07

Версия V2 основана на версии 1.1.3-beta. Разработка версии V2 будет вестись отдельно от ветки master, обновления будут публиковаться только в ветке V2. Версия V2 включает следующие функции:

— вход и выход пользователей;

— просмотр контента онлайн и автономное кэширование;

— скачивание;

— боковая панель обновлена.

2020/12/06

Прогресса нет.

2020/12/05

Забыл добавить ссылку на проект [😓].

Ссылка на GitHub временно недоступна, возможно, она будет опубликована позже (на самом деле, загрузка с GitHub слишком медленная, и автор не хочет тратить время на это).

2020/12/04

Исправлено аварийное завершение приложения при переходе в профиль неактивного пользователя.

Обновлён номер версии: номер версии будет увеличиваться только после выпуска первой официальной версии (build.gradle). Номера версий в build.gradle и version.xml должны совпадать.

Добавлена ссылка «Помощь».

Исправлена ошибка при переключении песен в MusicActivity.

Номер версии изменён на 1.1.2-beta.

Исправлены ошибки, связанные со скачиванием видео и качеством видео.

Решены проблемы безопасности, обнаруженные Tencent Cloud Security Scanner. Некоторые уязвимости связаны с использованием сторонних компонентов, и все они имеют низкий уровень риска. Автор сомневается, что кто-то будет использовать эти уязвимости для злонамеренных действий.

Атрибут allowBackup в AndroidManifest.xml теперь имеет значение false. Решение о том, следует ли включить его в будущем, будет принято на основе отзывов пользователей.

Номер версии изменён на 1.1.3-beta.

2020/12/03

Диалог «О приложении» добавлен в PreferenceActivity. Выпущена официальная версия V1.0. Текущая версия почти завершена, степень готовности близка к 100%. Проект открыт для сообщества.

Документация по проекту пока не завершена на 100%, но будет доступна на некоторых платформах приложений после завершения.

2020/12/02

Устранены некоторые ошибки.

Поскольку получение данных происходит в основном потоке, эта проблема пока не решается, но будет рассмотрена в будущем.

Порядок списка подписок и порядок получения локальных данных пока не решены.

Добавлено предпочтение для сортировки списка подписок по порядку доступа. Эта функция уже реализована.

Ошибка с отображением ImportStateDialog исправлена.

2020/12/01

Код частично переработан.

Благодарности добавлены. В будущем достаточно будет добавить элементы в массив ThanksList в пакете values.

Лицензия открытого исходного кода изменена.

2020/11/30

Часть кода в пакете parseDataUtils очищена и переработана.

Названия частично изменены.

Настройка Hero добавлена в PreferenceActivity. Настройка Hero уже реализована. Последующие добавления героев потребуют добавления их идентификаторов в HeroImages.heroImages и имён в массиве heroNames в файле preference_strings.xml. Идентификаторы и имена должны быть синхронизированы, иначе ресурсы будут отображаться в неправильном порядке.

CoordinatorLayout используется в activity_user и activity_search_result для реализации эффекта сворачивания и всплытия.

Логотип изменён. Логотип на боковой панели пока не обновлён. Текст запроса:

  • setLocation(int location) в соответствии с необходимостью устанавливает:

    • в конце использует create для создания RoundPopupWindow;
  • более подробные инструкции можно найти в комментариях к соответствующему методу;

  • теперь все всплывающие окна типа more используют RoundPopupWindow для создания;

  • добавлено уведомление об отсутствии сети, но использование немного хлопотно, оптимизация будет проведена позже;

  • вызывается статический метод checkNetwork() из класса InternetUtils;

  • false означает отсутствие сети, true — наличие сети;

  • чтобы изменить сообщение подсказки, нужно только изменить string.xml и изменить network_sign;

  • был изменён способ получения данных в четырёх фрагментах пользовательского интерфейса, сначала необходимо получить общее количество, а затем конкретные данные;

Не решённые проблемы:

  • во фрагменте всё ещё есть избыточный код, parseDataUtils пакет также содержит много избыточного кода;

  • при просмотре данных в пользовательском интерфейсе, если скорость прокрутки слишком высокая, приложение может легко аварийно завершить работу.

2020/11/28

  • было изменено местоположение всплывающего окна;

  • добавлен абстрактный класс RoundPopupWindow, который может создать всплывающее окно с закруглёнными углами;

— но расположение отображения ещё не настроено.

2020/11/27

  • большая часть кода макета и Java была изменена;

  • отказались от количества прослушиваний, комментариев и т. д. в интерфейсе воспроизведения музыки, оставив только добавление в список воспроизведения, видео, соответствующее музыке, переход на исходный веб-сайт и кэширование, а также верхнюю часть для открытия списка воспроизведения;

  • одновременно были изменены позиции отображения имени песни и имени автора в интерфейсе музыкального воспроизведения;

  • нажатие на имя автора также может перейти на главную страницу автора;

  • в этом обновлении используется большое количество закруглённых углов;

  • расположение всех меню всплывающих окон всё ещё требует настройки.

2020/11/26

  • проблема избыточности пока не может быть устранена по техническим причинам;

  • код интерфейса поиска был изменён;

  • добавлены элементы управления именем и изображением автора в ArticleActivity;

  • интерфейс metas был добавлен.

2020/11/25

  • проблема отсутствия данных при двойном поиске в основном решена, если адаптер поиска не создан, данные всё равно не могут отображаться;

  • часть кода VideoResultFragment была изменена, но ещё не отлажена;

  • функция поиска полностью завершена, ошибок пока нет;

  • поиск фрагментов всё ещё имеет избыточность кода, которая должна быть очищена.

2020/11/24

  • некоторые интерфейсы были изменены, SearchResultActivity всё ещё не может искать по ключевым словам;

  • SearchResultActivity был частично изменён;

  • некоторый код был изменён, двойной поиск, загрузка данных фрагмента всё ещё имеет проблемы, переключение фрагментов приводит к частой генерации фрагментов;

  • выполнение двойного поиска, загрузка данных фрагментов по-прежнему имеет проблемы;

  • однако в SearchResultActivity метод setOffscreenPageLimit() был добавлен для решения проблемы уничтожения фрагментов, которые не находятся в диапазоне загрузки при переключении фрагментов (но использование этого метода кажется немного неуместным).

2020/11/23

  • дошёл до VideoResultFragment;

  • добавил функцию загрузки дополнительных данных в VideoResultFragment;

  • функции поиска завершены, но большая часть кода всё ещё избыточна;

  • стиль spinner в HomeFragment был изменён.

2020/11/22

  • HomeFragment был изменён на комплексный поиск, результаты поиска включают видео, колонки и пользователей;

  • добавлена SearchResultActivity, эта активность является страницей результатов поиска;

— дизайн SearchResultActivity ещё не завершён;

  • инициализирующий код добавлен в SearchResultActivity.

2020/11/21

  • прогресса нет.

2020/11/20

  • лицензия добавлена;

  • LicenseDialog добавлен;

  • все функции PreferenceActivity завершены;

  • обратная связь ещё не обработана;

  • размер некоторых значков был изменён;

  • часть макета была изменена;

  • ненужные значки были удалены.

2020/11/19

  • AboutDialog был изменён в коде интерфейса;

  • возможность импорта внешних данных была добавлена в PreferenceActivity;

  • ImportFollowDialog завершён.

2020/11/18

  • MainActivity popupWindow item был изменён и добавлен PreferenceActivity;

  • очистка кеша была добавлена;

  • ImportFollowDialog наполовину завершён... слишком устал...

2020/11/17

  • прогресса нет.

2020/11/16

  • ошибка не исправлена, тип sids должен быть заменён на List;

  • UpSongActivity ошибка исправлена, все адаптеры RecyclerView оптимизированы;

  • структура каталогов utils была изменена.

2020/11/15

  • избыточность всех адаптеров в основном переписана;

  • внимание: при создании адаптера используйте следующий формат:

public class Adapter extends BaseAdapter<MusicPlayList> {
    
        @Override
        public int getLayout(int viewType) {
            return itemID;
        }
        
        @Override
        public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
            //вызов методов держателя, см. комментарии к коду
        }
        
        //другие методы
}
  • MusicPlayListAdapter и связанные с ним адаптеры ещё не завершены, позиция переключения песен может не сбрасываться успешно.

2020/11/14

  • способ получения данных ответа интерфейса был изменён:

  • получение данных интерфейса:

  1. запрос заголовка (Header) имеет особые требования:
public HttpUtils(String url, Headers headers, Map<String, String> params) {
    this.url = url;
    this.headers = headers;
    this.params = params;
}
  1. запрос заголовка не имеет требований:
public HttpUtils(String url, Map<String, String> params) {
    this.url = url;
    this.params = params;
    this.headers = Headers.of(getHeaders());
}
  • подключение SQLite было изменено:

  • создание соединения с данными должно осуществляться через создание класса SQLiteHelperFactory, в конструкторе передаются только Context и соответствующие таблицы, вызов метода getInstance() для получения объекта, требуется принудительное преобразование;

  • после использования базы данных необходимо вызвать метод close() в соответствующем Destroy, чтобы закрыть базу данных, необходимо вызвать этот метод после использования базы данных.

  • все адаптеры (Adapter) всё ещё имеют избыточный код.

2020/11/13

  • следующие два пункта предварительно определены:

  • логотип добавлен;

  • изображение заголовка боковой панели было изменено;

  • исправлены проблемы с обновлением списка подписок и списка воспроизведения после подписки на пользователя, сохранения видео или песни;

  • первая проблема входа в систему после подписки на пользователя, сохранения видео или песни была исправлена. По поводу части кнопок добавлен эффект ripple.

По поводу большинства элементов управления добавлен эффект ripple. RecyclerView — эффект ripple для элемента списка пока не добавлен.

Сокращён некоторый избыточный код.

Исправлена проблема с отображением значка видео в musicPlayList.

Исправлены проблемы с отображением закруглённых углов обложки в videoPlayList.

Для всех элементов списка (item) добавлен эффект ripple.

Исправлено: все данные загружены, но обновление элементов управления всё ещё активно.

Частично исправлены проблемы. Просмотр интерфейса picture пока не добавлен.

2020/11/09

Изменён стиль VideoActivity и способ выбора чёткости видео.

Исправлен случай, когда при загрузке видео выбор чёткости был неполным или избыточным.

Исправлено отображение имени пользователя и описания на странице подписки.

Изменена логика получения ответа в VideoActivity. Если в AndroidManifest в теме MainActivity используется more_menu_style, то стиль spinner рядом с полем ввода будет нарушен.

Главное меню «ещё» требует доработки. Главное меню было доработано, но выглядит несколько некрасиво.

Обратите внимание, если в AndroidManifest в теме MainActivity используется more_menu_style, то ввод текста рядом со spinner будет нарушен.

2020/11/08

Функция сохранения статьи в виде длинного изображения уже реализована.

Исправлена проблема, из-за которой нижняя часть VideoActivity была окрашена не полностью.

Интерфейс VideoActivity требует доработки.

2020/11/07

Добавлена Activity статьи. В пользовательском интерфейсе появился список статей. Список статей и Activity ещё не завершены.

2020/11/06

Проведено тестирование веб-страницы.

2020/11/05

Нет прогресса.

2020/11/04

Добавлен сценарий JavaScript для удаления элементов веб-страниц в контексте «столбца». Удаление элемента div в столбце не решило проблему.

2020/11/03

Добавлен интерфейс страницы столбца Activity, соответствующий фрагмент в пользовательском интерфейсе ещё не добавлен. Проведено тестирование веб-страницы.

2020/11/02

Проблема с тенью фрагмента решена. Исправлены некоторые мелкие проблемы, представление viewPage в списке не имеет прослушивателя событий. Получение разрешений всё ещё требует доработки, проблема с тенями ещё не решена. Получение разрешений завершено. Код был очищен, но всё ещё существует избыточность кода. Класс MediaUtils содержит метод getHeaders(), который является избыточной частью, этот метод должен быть очищен. После перехода от «коллекции» к «плейлисту» над плейлистом появится тень. Видео в плейлисте имеют разные цвета значков. Не буду делать это, сделаю это вечером... Добавлена функция кэширования изображений, очистка кода выполнена. Каждый раз, когда происходит кэширование, вызывается метод verifyPermissions класса FileUtils для получения разрешений, а обратный вызов выполняется в каждом соответствующем Activity.

2020/11/01

Без прогресса.

2020/10/31

На боковой панели добавлена функция «плейлист». В плейлисте добавлены два интерфейса: видеоплейлист и аудиоплейлист. На боковой панели всё ещё есть проблема с тенью фрагментов. В аудио и видео плейлистах нет идеального способа скрыть подсказку «нет данных».

2020/10/30

Функциональность переключения музыки завершена, Fragment плейлиста ожидает добавления. Возможно, на других моделях всё ещё существуют проблемы. Если песня воспроизводится после первого запуска, анимация и кнопки управления могут оставаться неизменными. Проблема может быть решена путём изменения значения переменной differenceRange в MusicService. Исправлена первая проблема: после воспроизведения целой песни, выхода и повторного входа, песня не может быть воспроизведена.

2020/10/29

Обновление плейлиста решено. Переключение песен и переключение на песни в плейлисте завершены. При переключении на другую песню, а затем нажатии «Добавить в плейлист», «красное сердце» всё ещё присутствует. После переключения песен состояние кнопки воспроизведения и анимация на физическом устройстве остаются прежними, кнопка находится в состоянии паузы.

2020/10/28

Сервис добавлен, но регистрация сервиса всё ещё не работает! Сервис решён, музыка может быть воспроизведена, но музыка останавливается, когда музыкальный интерфейс покидает; проблема с сохранением музыки не решена. Музыка воспроизводится нормально, после добавления в плейлист, плейлист не обновляется вовремя. Воспроизведение предыдущей / следующей песни и отображение текста песни ещё не реализованы.

2020/10/27

Контрольный список Favorite необходимо изменить на RecyclerView (до сих пор все контрольные списки были RecyclerView). Изменение должно быть сделано завтра, ListView слишком плох. Контрольный список Favorite изменён. Добавлен интерфейс плейлиста, анимация добавлена в диалог. Некоторые стили закруглённых углов элементов управления были изменены. Сервис был добавлен, но сервис всё ещё не зарегистрирован! Аудиоинтерфейс и получение данных завершены, мониторинг FavoriteFragment ещё не завершён. «Наконец-то» вспомнил добавить README.

2020/10/26

Кэширование видео завершено, все герои были заменены на файлы типа Vector.

2020/10/25

Использование боковой панели для переключения Fragment перекрытие было исправлено, добавлены способы получения bvid и mid, добавлено получение сетевого статуса, и некоторые детали были оптимизированы. Кэширование видео завершено, все герои были заменены на файлы типа Vector.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/leon_xf-biu-video.git
git@api.gitlife.ru:oschina-mirror/leon_xf-biu-video.git
oschina-mirror
leon_xf-biu-video
leon_xf-biu-video
master