Ich habe ein kleines C ++ Qt-Programm, das eine QAudioOutput-Instanz zum Senden von Sound verwendet. Es kompiliert & amp; läuft gut mit Qt 4.8.5.
In Qt 5.0, 5.1 und 5.2 kompiliert meine Anwendung jedoch, funktioniert aber nicht. Ich erhalte die folgende Fehlermeldung, während der Konstruktor der QAudioOutput-Instanz ausgeführt wird:
Es konnte keine Verbindung zum pulseaudio-Kontext hergestellt werden.
Der Konstruktor gibt auch nicht zurück, also hängt mein Programm.
Ich habe kein Pulseaudio. ALSA funktioniert einwandfrei, und das verwendet mein Programm, wenn es mit Qt 4.8.5 kompiliert wird.
Beim Überprüfen des Qt5 "plugins / audio" -Verzeichnisses gibt es dort nur "libqtmedia_pulse.so", dessen Name andeutet, dass es auf pulseaudio ankommt.
Meine Fragen:
Aus dem Qt-Dokumentations-Wiki auf Multimedia-Backends :
Hier ist die Liste der aktuellen Audio-Backends:
%Vor%Nur PulseAudio-, CoreAudio- und QNX-Backends sind echte Plugins. Das Andere Backends sind "# ifdefed" in den zugehörigen Klassen.
Grundsätzlich ist ALSA kein Plugin, sondern muss ausgewählt werden, wenn Sie Qt konfigurieren (wenn Sie Ihr eigenes Build erstellen, was ich annehme).
Aus dem Qt-Dokumentations-Wiki auf , das Qt5 von git erstellt :
Qt Multimedia
Sie werden mindestens alsa-lib (& gt; = 1.0.15) und gstreamer (& gt; = 0.10.24, aber & lt; 1.0 für jetzt [lists.qt-project.org]) mit den base-plugins Paket.
Ubuntu / Debian:
%Vor%
Beim Konfigurieren von Qt habe ich die Anzahl der Zeiten verloren, zu denen ein Feature aufgrund fehlender Abhängigkeiten nicht kompiliert wurde. Stellen Sie also absolut 100% sicher, dass alle Abhängigkeiten ordnungsgemäß installiert sind und dass alle Ihre Konfigurationsoptionen mit dem aktuellen Konfigurationsprogramm gültig sind (verfügbare Optionen ändern sich sogar zwischen Nebenversionen)! Denken Sie daran, die Ausgabe aus dem Build-Prozess genau zu betrachten (sammeln Sie die Ausgabe in einer Datei und durchsuchen Sie sie, nachdem der Build für alle Nachrichten mit "Überspringen" oder "Fehler" oder solchen Schlüsselwörtern abgeschlossen ist.
)OTOH, wenn du nicht dein eigenes Qt gebaut hast, dann habe ich keine Ahnung und du solltest diese Antwort ignorieren.
Fix ist in Qt 5.4 vorhanden, commit eb75bf8e3bde3a9b3efc91b54aa4dc2e34a3cde4
Ich bin der Debian-Betreuer für Qt und heute kam ein Benutzer mit dem gleichen Problem. Die Build-Protokolle zeigen, dass alsa-Abhängigkeiten vorhanden sind und ordnungsgemäß erkannt werden ...: - /
Note 2014-12-03: Das Problem liegt in plugins.pro: Es erstellt das alsa-Plugin nicht, wenn pulseaudio-Unterstützung gefunden wird. Problem und Patch von Chris Ruvolo, wird heute später stromaufwärts drücken.