Я опоздал на год, но:
Действительно ли ваша конфигурация pulseaudio использует приемник Bluetooth в качестве резервного выхода?
Я столкнулся с этой же проблемой и обнаружил, что модуль ladspa при загрузке должен указывать основной вывод.
Затем я проверил код бинарного эквалайзера pulseaudio -и обнаружил, что он считывает списки приемников и устанавливает резервный приемник в качестве выходных данных.
Все, что вам нужно сделать (по крайней мере, в моей версии ), это установить выход bluetooth в качестве резервного, а затем запустить эквалайзер.
Ваш read(2)
возвращает EAGAIN
, потому что вы открыли файл в неблокирующем режиме -с помощьюsignalfd(..., SFD_NONBLOCK |...)
(SFD_NONBLOCK
иO_NONBLOCK
).
Не открывайте файловые дескрипторы и не устанавливайте -неблокирующий режим, если вы хотите блокировать их чтение.