Мне нужно управлять устройством вывода звука во время выполнения:
1) Main Speaker only
2) Headphone Only
3) Headphone + Main Speaker both together
Мое приложение принимает решение во время выполнения переключаться между вышеуказанными комбинациями. Какой ALSA API следует использовать для вышеуказанных целей.
(Я использую Linux 3.0, ALSA, C, TI tlv320aic3x, ARM).
Вы можете использовать это:
int snd_mixer_selem_set_playback_volume(snd_mixer_elem_t *elem,
snd_mixer_selem_channel_id_t channel, long value)
который устанавливает значение регулятора громкости воспроизведения простого элемента микшера.
/* Set new volume */
if (snd_mixer_selem_set_playback_volume(elem,
SND_MIXER_SCHN_FRONT_LEFT, left_volume) != 0)
return (-1);
if (snd_mixer_selem_set_playback_volume(elem,
SND_MIXER_SCHN_FRONT_RIGHT, right_volume) != 0)
return (-1);
Других решений пока нет …