Žiadny popis

Grannik 535cd9d3c6 Загрузить файлы '' 1 týždeň pred
README.md 98cefbb89e Обновить 'README.md' 1 týždeň pred
hapk.c 535cd9d3c6 Загрузить файлы '' 1 týždeň pred
happ.c 535cd9d3c6 Загрузить файлы '' 1 týždeň pred
hapr.c 535cd9d3c6 Загрузить файлы '' 1 týždeň pred
haps.c 535cd9d3c6 Загрузить файлы '' 1 týždeň pred
hiddenAudioPlayer.c 535cd9d3c6 Загрузить файлы '' 1 týždeň pred

README.md

🎧 HAP (Hidden Audio Player)

🧪 Назначение

Лёгкий и невидимый PCM-аудиоплеер, написанный на C, с управлением через именованный канал (FIFO). Работает в фоне как демон, поддерживает проигрывание одиночных .pcm файлов и целых директорий как плейлист.


🔧 Возможности

  • Воспроизведение .pcm-файлов через ALSA
  • Поддержка директорий — проигрывание всех .pcm файлов по порядку
  • Пауза, ▶️ продолжение и ⏹ остановка воспроизведения
  • Управление через команды в FIFO /tmp/pcm_cmd
  • Фоновый режим (демон)

🛠️ Установка в систему

sudo mv hiddenAudioPlayer /usr/local/bin/
sudo mv hapk happ hapr haps /usr/local/bin/

1. Установи зависимости

sudo apt update
sudo apt install -y libasound2-dev build-essential ffmpeg

2. Компиляция

gcc hiddenAudioPlayer.c -o hiddenAudioPlayer -lasound -lpthread
gcc hapk.c -o hapk
gcc happ.c -o happ
gcc hapr.c -o hapr
gcc haps.c -o haps

ℹ️ Описание

Язык программирования: C + ALSA.
Плеер hiddenAudioPlayer принимает как одиночный файл, так и директорию (воспринимается как плейлист) и проигрывает все .pcm файлы в ней.
Программа полностью "молчаливая" — она ничего не выводит в терминал, работает в фоне.


📥 Преобразование файлов через ffmpeg

Пример создания .pcm файла:

ffmpeg -i song.mp3 -f s16le -acodec pcm_s16le -ar 44100 -ac 2 output.pcm
Команда Назначение
ffmpeg Запуск утилиты ffmpeg
-i song.mp3 Входной файл (любое аудио)
-f s16le Формат: Signed 16-bit Little Endian
-acodec pcm_s16le Явное указание кодека PCM 16-bit LE
-ar 44100 Частота дискретизации: 44100 Гц (CD качество)
-ac 2 Количество каналов: 2 (стерео)
output.pcm Имя выходного файла — "голый" PCM поток

Результат:

  • Signed 16-bit little endian (2 байта на сэмпл)
  • Частота 44100 Гц
  • 2 канала (стерео)
  • Без заголовков и метаданных — только аудиопоток

Полный пример:

ffmpeg -i /home/usr/Music/input.mp3 -f s16le -acodec pcm_s16le -ar 44100 -ac 2 /home/usr/pcmMusic/output.pcm

⏹️ Команды для остановки воспроизведения

  1. Автоматически — после проигрывания:

    pgrep pcm_player_v2
    # После завершения процесса:
    pgrep pcm_player_v2  # (пусто)
    
  2. Медленно — через FIFO команду (скрипт haps):

    echo haps > /tmp/pcm_cmd
    
  3. Быстро — завершение по PID (скрипт hapk)


⏯ Команды управления воспроизведением

  • pause — пауза (скрипт happ)
  • resume — продолжить (скрипт hapr)

👤 Автор

Grannik


🌐 Контакты


📦 Репозитории

  • Codeberg: grxiv
  • GitHub: grxiv
  • GitLab: grxiv
  • SourceForge: grxiv
  • NotABug: [grxiv]()
  • Gitea (Demo): [grxiv]()
  • Gogs (Demo): [grxiv]()

📝 Лицензия

Этот проект распространяется под лицензией MIT.
См. файл LICENSE для подробностей.