Dianne Hackborn, thanks for your comments. Right, I know this about the ringer and media volumes. But what I concern here is how to set the volume level gain in the real hardware codec driver (instead of the "software" volume change if it is) when the volume level is changed in the Android. Here is more observations that I missed to mention in the case:
1. When playback a song and make changed the volume level in the Android, I observe the media volume is using. For what I observed, the "software" volume is somehow using as I mentioned before. 2. When not in music playback, I observe the ringer volume is using. If I make changed the volume level in this case, I found the corresponding hardware codec driver is called to set the volume gain (i.e. I can see the corresponding codec registers changed by alsa_amixer). However, what I found the LOGCAT is strange. The codec driver is merely called to set zero volume level first (i.e. 0 value) and then set back to its maximum value (i.e. 255 value out of the maximum 255 level). As I need to ensure that the direct hardware codec driver is called for audio quality concern, I need to be clear of what happens here or what is going wrong with some settings in my case. What can I do? Thanks! On 9月16日, 上午4時07分, Dianne Hackborn <[email protected]> wrote: > You aren't adjusting the overall volume level, you are adjusting the volumes > of one of the streams being mixed. Typically by default you are adjusting > the ringer volume, and if playing media you will be adjusting the media > volume. > > > > > > On Tue, Sep 15, 2009 at 3:10 AM, Andy <[email protected]> wrote: > > > Hi all, > > > I found in my Android platform that everytime when I adjust the volume > > level (i.e. press the volume key +/-), it seems a software volume > > control scheme is used (Instead, I expect a direct function call to a > > codec hardware driver, and changing audio gain in corresponding > > registers). > > > I found this using the alsa_amixer to list out the volume change in a > > "Master Volume" element. Here is what I figure out this following the > > sequence below: > > > 1. After bootup, monitor the current volume level of the "Master > > Volume" element using the alsa_amixer. The GET value is 255 out of the > > maximum 255. > > > 2. Playback a song using the Android music player. > > > 3. Adjust the volume level in the Android to see if there is changed > > in the "Master Volume" status. > > > 4. I found I can hear the change in the headphone audio output, but > > the "Master Volume" element still keeps the value 255 no matter I > > changed the volume from the lowest to the highest. > > > I would like to disable this software volume if it is really using and > > use the hardware. Does anyone have any idea about what is going on in > > my case? Thanks!!! > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them.- 隱藏被引用文字 - > > - 顯示被引用文字 - --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
