Qt — Нет устройства вывода звука — Yocto/poky


Я пытаюсь воспроизвести аудиофайл WAV с помощью Qt (QSound, QSoundeffect) на плате Atmel на базе ARM (sama5d31ek).
Я собрал rootfs (и Qt SDK для кросс-компиляции) с помощью Yocto. /poky.
При воспроизведении с QSound я получаю следующее сообщение в журнале: используется пустое устройство вывода, нет доступных.
Я ничего не получаю при запуске:

foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput))
    qDebug() << "Device name: " << deviceInfo.deviceName();

Я могу воспроизвести файл через командную строку с помощью aplay (alsa).
Утилита pulseaudio отсутствует.

Что-либо?

Клейтон:

 > aplay --list-devices
**** List of PLAYBACK Hardware Devices ****
card 0: SAMA5D3 [tlv320aic3x @ SAMA5D3], device 0: TLV320AIC3X PCM tlv320aic3x-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 > cat /proc/asound/card0/pcm0p/info
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: TLV320AIC3X PCM tlv320aic3x-hifi-0
name:
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

Нет звука со следующей командой:

 > aplay -D hw:0,0 35_800.wav
Playing WAVE '35_800.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
aplay: set_params:1241: Sample format non available
Available formats:
- S16_LE
- S24_LE
- S32_LE

Воспроизведение звука с помощью следующей команды:

 > aplay -D plughw:0,0 35_800.wav
Playing WAVE '35_800.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono

Зацикливание QAudioDeviceInfo: устройства не найдены.

спасибо


person Rami Rosenbaum    schedule 16.04.2016    source источник


Ответы (2)


была такая же проблема, и после установки мультимедийного плагина qt доступ к аудиоустройствам работал.

sudo apt install libqt5multimedia5-plugins
person gludie    schedule 14.08.2019

Добавьте пакеты alsa-utils и выполните:

$ aplay --list-devices
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VB Analog >[ALC269VB Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Затем, в зависимости от выходного прогона:

aplay -D plughw:0,0 music.wav 

Or:

$ cat /proc/asound/card0/pcm0p/info
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: HDMI 0
name: HDMI 0
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

С использованием:

aplay -D hw:0,0 music.wav

Затем с помощью Qt вы можете перечислить устройства с помощью:

QList <QAudioDeviceInfo> devices = QAudioDeviceInfo :: availableDevices (QAudio :: AudioOutput);
foreach (i QAudioDeviceInfo, devices)
   // Print the devices here!

Попробуйте и опубликуйте результаты здесь!

person Cleiton Bueno    schedule 18.04.2016