0

質問:

1. QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) は、3 つのオーディオ出力デバイスから 1 つのオーディオ デバイス (デフォルト デバイス) のみを返します。なんで? 合計 3 つのオーディオ出力デバイスが利用可能で、ALSA デバイスでチェックしながら、コマンド ラインで「tinyplay」ユーティリティを使用して出力を検証しました。しかし、QAudioDeviceInfo::availableDevices() はこれら 3 つのデバイスを返さず、1 つのデバイスのみを返します (デフォルト)。

注: qt サンプルのサンプル コードをオーディオ出力に使用しました。返却されたデバイスは 1 つだけです。

m_deviceBox->addItem(defaultDeviceInfo.deviceName(), qVariantFromValue(defaultDeviceInfo));
foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) {
if (deviceInfo != defaultDeviceInfo) {
 m_deviceBox->addItem(deviceInfo.deviceName(), qVariantFromValue(deviceInfo));
}
}

2. 特定の ALSA デバイス (例: card0、デバイス 0) をデフォルトのオーディオデバイスとして設定するには? この場合、QAudioDeviceInfo::defaultOutputDevice() はサウンド カード 2 のデバイス 0 として設定されます。

詳細は下記をご覧ください。

システム設定:

対象ボード:iMX6QセイバーAI

OS : アンドロイドM6

Qt : QT 5.8

Android NDK r10

アンドロイド SDK: 25.2.5

利用可能なサウンド カード:

root@sabreauto_6q:/ # cat /proc/asound/cards

0 [cs42888audio]: cs42888-audio - cs42888-audio cs42888-audio 1 [imxspdif]: imx-spdif - imx-spdif imx-spdif 2 [imxhdmisoc]: imx-hdmi-soc - imx-hdmi-soc imx-hdmi-社会

利用可能なサウンド デバイス:

root@sabreauto_6q:/ # cat /proc/asound/card0/ id pcm0c/ pcm0p/ pcm1c/ pcm1p/

root@sabreauto_6q:/ # cat /proc/asound/card1/ id pcm0c/

root@sabreauto_6q:/ # cat /proc/asound/card2/ id pcm0p/

注: 合計 3 つのサウンド カードと 3 つのオーディオ (ALSA) 出力デバイスが存在します。

オーディオ出力デバイスのテストを試みます:

tinyplay ユーティリティのサウンド出力を使用して、オーディオ出力ドライバー全体で検証済み。

tinyplay test.wav -D 0 -d 0 --> サウンド確認済み。注 : サウンド カード 0 の ALSA デバイス 0 は、サウンドを生成するために実行されています。

tinyplay test.wav -D 0 -d 1 --> サウンド確認済み。

tinyplay test.wav -D 2 -d 0 --> サウンド確認済み。

4

0 に答える 0