Re: [Alsa-user] how can i use alsa-lib api to control pcm playback volume.
Brought to you by:
perex
From: Falcon Xu <blu...@ho...> - 2008-09-03 08:09:56
|
Hi: I,ve finished this problem using snd_hctl_ apis. code as below: err = snd_hctl_open(&ctlhandle, "default", 0);elemt = snd_hctl_last_elem(ctlhandle);err = snd_hctl_elem_read(elemt, elemvalue);sndvolume0 = snd_ctl_elem_value_get_integer(elemvalue, 0);sndvolume1 = snd_ctl_elem_value_get_integer(elemvalue, 1); //Modified the sndvolume as we want. snd_ctl_elem_value_set_integer(elemvalue, 0, sndvolume0);snd_ctl_elem_value_set_integer(elemvalue, 1, sndvolume1);snd_hctl_elem_write(elemt, elemvalue);snd_hctl_wait(ctlhandle, 100); that code works, but the effect must be in this situations: use snd_hctl_open() after snd_pcm_open(); other the set_value won't work. i don't know why, but i can use this for my code. and that's over of this question. From: blu...@ho...To: als...@li...Date: Sun, 31 Aug 2008 22:10:52 +0800Subject: [Alsa-user] how can i use alsa-lib api to control pcm playback volume. Hi: i'm doing some develop on a linux system, kernel version: 2.6.23.9. alsa-lib version:1.0.15. now ffmpeg and alsa can work together to playback mp3/aac file. during this step: snd_pcm_open(&pcm_handle, "default", SND_PCM_STREAM_PLAYBACK, 0);set_params(); //set hw and sw params.while(audio_data){decode_audio_data(&audio_data, &data_len);snd_pcm_writei(audio_data. data_len);} and the mp3 playback is ok, now i'm going to add the volume control functions when the sound is playback. but when i read the alsa-lib api funtions reference, i can not clearly know how i can control the pcm volume by alsa-lib functions. and in alsamixer and amixer functions, seems complex to complete the operation. is it has a simple way to control the pcm volume? thanks for any suggestions. _________________________________________________________________ Explore the seven wonders of the world http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE |