Приложение, использующее GStreamer, не работает, когда другое приложение использует ALSA

Я использую Ubuntu 12.04, который, конечно же, использует ALSA для звука. У меня есть два приложения, с которыми я работаю, которые используют GStreamer для декодирования и воспроизведения мультимедиа, и всякий раз, когда я слушаю Pandora или запускаю Youtube, мои приложения не будут работать.

Одно приложение при каждом запуске пытается установить состояние конвейера для воспроизведения и выдает ошибку, которую не может. Другое приложение выдает ошибку на шине, которая дает мне следующую информацию:

    Setting the pipeline to play. Playing.
    Error received from element autoaudiosink-actual-sink-alsa: Could not open audio device for playback. Device is being used by another application.
    Debugging information: gstalsasink.c(689): gst_alsasink_open (): /GstAlsaSink:autoaudiosink-actual-sink-alsa:
    Device 'default' is busy

Я использую autoaudiosink в конвейере для обоих приложений, поэтому этот вывод показывает мне, что он выбирает ALSA для приемника звука. В этом нет ничего удивительного. Но это также означает, что GStreamer пытается полностью уничтожить ALSA для себя и плохо работает с другими мультимедийными приложениями. Я провел небольшое тестирование, и, похоже, моя теория верна.

Может ли кто-нибудь сказать мне, есть ли способ настроить звук GStreamer на Ubuntu, чтобы он работал с другими мультимедийными приложениями? Или известно, что при использовании звука GStreamer другие мультимедийные приложения не запускаются?


person Alex    schedule 09.08.2013    source источник
comment
Можете ли вы также попробовать Pulsesink, отличные от autoaudiosink, и сообщить нам результаты   -  person user2618142    schedule 13.08.2013
comment
Я попытался заменить автоаудиоканал на импульсный, но конвейер не подключился должным образом. Настройка для звуковой части моего конвейера - очередь - ›a52dec -› ac3parse - ›audioresample -› audioconvert - ›pulsesink. Это правильно?   -  person Alex    schedule 16.08.2013
comment
Вы уверены, что dec (oder) придет перед parse (er). Не могли бы вы также попробовать их переключить. ИМО, парсер должен стоять перед декодером в очереди.   -  person user2618142    schedule 16.08.2013
comment
Woops, извините, у меня действительно есть парсер перед декодером. И я обнаружил, что причина, по которой он не работает, заключалась в том, что у меня не было зависимостей для импульсного звука. Я их установил, и он отлично работает! Теперь я могу запускать другие мультимедийные приложения одновременно с моими приложениями. Спасибо!   -  person Alex    schedule 16.08.2013
comment
Хотя, в надежде, что я все еще могу использовать приемник ALSA, и для более подробного ответа, есть ли способ настроить GStreamer с использованием приемника ALSA, который позволит другим приложениям играть?   -  person Alex    schedule 16.08.2013
comment
Проверьте ps -ef | grep sound или проверьте grep alsa или проверьте grep pulse и вставьте результаты.   -  person user2618142    schedule 23.10.2013


Ответы (1)


Пожалуйста, используйте pulsesink, затем попробуйте. Вы также должны разрешить все необходимые зависимости.

person user2618142    schedule 21.08.2013
comment
Замена моего автоаудио на импульсный сработала отлично! Спасибо! Я бы предпочел использовать alsasink, и я до сих пор не нашел способа исправить эту проблему. Итак, если кто-нибудь знает, как это исправить, дайте ответ. - person Alex; 21.08.2013