Wird die Audiowiedergabe über ALSA in Qt5 unterstützt?

9

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:

  • Gibt es noch ein Backend für die Ausgabe an ALSA (ohne Pulseaudio) in Qt 5+?
  • Wenn ja, wie stelle ich sicher, dass es gebaut ist? Ich sehe keine Konfigurationsoptionen dafür.
  • Es scheint ein Fehler zu sein, dass der Konstruktor von QAudioOutput meine App aufhängt. Wo kann ich das melden?
reddish 14.11.2013, 18:30
quelle

2 Antworten

3

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.

    
Lennart Rolland 30.07.2014 19:14
quelle
0

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.

    
lisandro 29.11.2014 19:05
quelle

Tags und Links