/flac

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

Primary LanguagePython

Разбор аудиоформата flac

Версия 0.1

Инструкция по управлнию зависимостями в виртуальной среде

  • Создать папку .venv mkdir .venv
  • Создать виртуальную среду python3 -m venv $PWD/.venv
  • Войти в виртуальную среду source ./.venv/bin/activate
  • Установить зависимости pip install -r requirements.txt
  • Поработать
  • Выйти deactivate

Требования

  • Python версии не ниже 3.9.7
  • PyQt версии 5

Состав

  • Консольная версия: player_cli.py
  • Графическая версия: player_gui.py
  • Модуль, выполняющий разбор файла flac: flac.py
  • Модуль для нахождения контрольной суммы: CRC8.py
  • Модуль содержащий необходимые константы: constants.py
  • Тесты: test_all.py

Консольная версия

Справка по запуску: python player_cli.py --help

Примеры запуска: python player_cli.py -f FILENAME python player_cli.py -f FILENAME --picture python player_cli.py -f FILENAME --frames

Справка по командам: help [команда]

Графическая версия

Пример запуска: python player_gui.py

Подробности реализации

Модулем, отвечающий за разбор метаданных и фреймов является flac.py. Модули player_cli.py и player_gui.py являются соответственно консольным и графическим интерфейсами, отвечающими за вывод информации о файле, воспроизведение звука, паузу, перемотку, изменение громкости, возможности сохранить картинку из файла и информацию о всех фреймах. При разборе информации о фреймах возникает необходимость проверять контрольную сумму, для чего используется модуль CRC8.py В модуле constants.py хранятся строки, необходимые для вывода информации о файле.

На модуль flac.py написаны тесты, их можно найти в test_all.py. Покрытие по строкам составляет около 84%:

flac.py       322      52    84%