Ошибка при попытке запустить пример HRTF из PyAL (дескриптор файла в плохом состоянии) на Raspberry Pi - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь поэкспериментировать с пространственным воспроизведением звука HRTF с использованием библиотеки PyAL на Raspberry Pi https://github.com/NicklasTegner/PyAL/tree/master/examples/HRTF

PyAL зависит от OpenAL. Я установил необходимые зависимости, используя sudo apt-get install, чтобы гарантировать работу библиотеки: libopenal-dev libopenal1 libopenal-data libmysofa-dev libmysofa0 libmysofa-utils qt5-default alsa-utils alsa-oss alsaplayer-jack g++ gstreamer1.0-python3-plugin-loader gstreamer1.0-alsa

Кроме того, я установил pyglet, используя: sudo pip3 install pyglet

Все примеры (3D-звук, воспроизведение, efx, audiplayer, player) работают, кроме примера HRTF. Когда я пытаюсь запустить пример HRTF, я получаю следующую ошибку: AL lib: (EE) ALCplaybackAlsa_reset: snd_pcm_hw_params(self->pcmHandle, hp) failed: File descriptor in bad state

Я точно знаю, что это вызвано отсутствием PulseAudio в системе (https://unix.stackexchange.com/questions/467193/error-while-running-the-gstreamer-example-on-development-kit-file-descriptor). Итак, я установил pulseaudio и соответствующие инструменты (например, pavucontrol с использованием sudo apt-get install pulseaudio.

После установки pulseaudio и перезагрузки, когда я запускаю этот пример, пример выполняется без ошибок. Однако я не слышу звука вывод в наушниках. Фактически, вывод звука из всей системы прекращается. Я убедился, что вывод звука - наушники от sudo raspi-config, и alsamixer действительно показывает pulseaudio как аудиодрайвер (когда он установлен).

Я получаю противоречивую информацию от Inte rnet. Вышеупомянутая ссылка предлагает использовать pulseaudio для смягчения ошибки (что правильно), тогда как эта ссылка: https://www.youtube.com/watch?v=stvc7ehCWUU и https://raspberrypi.stackexchange.com/questions/1621/no-sound-output-in-vlc скажем, чтобы удалить pulseaudio (что также правильно в том смысле, что оно возвращает мой звук, но я не могу запустить пример HRTF).

Есть предложения?

1 Ответ

0 голосов
/ 21 июня 2020

Это очень странно, но я решил проблему подключением дешевой внешней аудиокарты USB (https://www.amazon.com/gp/product/B00IRVQ0F8/ref=ppx_yo_dt_b_search_asin_title? Ie = UTF8 & psc = 1 ). Судя по всему, ALSA сохраняет контроль над разъемом 3,5 мм и не передает управление этим разъемом Pulseaudio. Самое простое решение - использовать внешнюю звуковую карту.

...