В Raspbian Bookworm, как запустить безголовый браузер с поддержкой аудио

Вопрос или проблема

У меня есть плеер Spotify на JavaScript, который я хочу запустить без графического интерфейса в Raspian Bookworm на RPi5. Я управляю плеером с помощью модуля spotipy на Python. У меня работают как nginx, так и gunicorn в качестве системных служб, и все функционирует, когда запускается в GUI с использованием VNC.

Однако мне нужна эта система без графического интерфейса и чтобы все запускалось при загрузке. Я могу запустить браузер Chromium в безголовом режиме, но при запуске песни в плеере Spotify звук не воспроизводится.

Вот моя служба для браузера:

    [Unit]
Description=Служба браузера без графического интерфейса
After=gunicorn.service nginx.service network.target
Requires=gunicorn.service nginx.service

[Service]
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/chromium-browser --headless --disable-gpu  --autoplay-policy=no-user-gesture-required --mute-audio=false --alsa-output-device=default --use-fake-ui-for-media-stream --remote-debugging-port=9222 http://localhost
Restart=always
User=myuser

[Install]
WantedBy=multi-user.target

Я пробовал работать с PulseAudio, но не хочу идти по этому пути. Возможно ли это сделать в Chromium? Есть ли другой, более простой способ запустить мой JavaScript в безголовом режиме?

Ответ или решение

Как запустить безголовый браузер с поддержкой звука в Raspbian Bookworm

Для реализации вашей задачи по запуску JavaScript плеера Spotify на безголовом Raspberry Pi 5 с Raspbian Bookworm, вам потребуется несколько шагов, чтобы добиться воспроизведения звука. Несмотря на использование Chromium в безголовом режиме, необходимо учитывать, что звук по умолчанию может быть отключён или требовать дополнительных настроек для корректной работы.

1. Особенности работы звука в безголовом режиме

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

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

2. Обновление конфигурации службы браузера

В вашем unit-файле службы, чтобы обеспечить воспроизведение звука, можно попробовать использовать альтернативный способ — запуск Chromium с некоторыми дополнительными параметрами или модифицировать существующие. Обратите внимание на следующие настройки:

[Unit]
Description=Headfull Browser Service
After=gunicorn.service nginx.service network.target
Requires=gunicorn.service nginx.service

[Service]
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/chromium-browser --headless --no-sandbox --disable-gpu --autoplay-policy=no-user-gesture-required --mute-audio=false --alsa-output-device=default --use-fake-ui-for-media-stream --remote-debugging-port=9222 http://localhost
Restart=always
User=myuser
Environment="DISPLAY=:0"
Environment="PULSE_SERVER=unix:/tmp/pulse/native"

[Install]
WantedBy=multi-user.target

3. Проверка и запуск PulseAudio

Хотя вы не хотите использовать PulseAudio, он предоставляет более надежные возможности для работы со звуком в безголовом режиме. Если вам нужно воспроизводить звук, вам все же придется его настроить:

  1. Установите PulseAudio: Убедитесь, что у вас установлены PulseAudio и необходимые модули.

    sudo apt update
    sudo apt install pulseaudio pulseaudio-utils
  2. Запустите PulseAudio как службу: Важно, чтобы PulseAudio был запущен перед запуском Chromium. Вы можете добавить его в качестве системной службы. Создайте файл, например, /etc/systemd/system/pulseaudio.service:

    [Unit]
    Description=PulseAudio Sound Server
    After=sound.target
    
    [Service]
    ExecStart=/usr/bin/pulseaudio --daemonize --system
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  3. Запустите сервис PulseAudio:

    sudo systemctl enable pulseaudio
    sudo systemctl start pulseaudio

4. Автоматический запуск всех сервисов

Убедитесь, что все службы запускаются последовательным образом. Вам необходимо установить зависимости таким образом, чтобы PulseAudio, NGINX и Gunicorn запускались перед вашем браузером.

5. Тестирование и отладка

После того как вы выполнили вышеуказанные шаги, перезагрузите систему и проверьте, работает ли звук в безголовом режиме. Запустите команду:

systemctl status <название вашей службы>

Проверьте журналы на наличие ошибок:

journalctl -u <название вашей службы>

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...