音频应用

 找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 18784|回复: 0
打印 上一主题 下一主题
收起左侧

[原创] [audio APP]收音机音量开到最大都没有“将音量调高到安全级别以上

[复制链接]

294

积分

2

听众

0

音贝

音频应用

Rank: 1

积分
294
跳转到指定楼层
1#
发表于 2006-7-28 16:40:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[audio APP]收音机音量开到最大都没有“将音量调高到安全级别以上?会损坏听力”提示
[DESCRIPTION]
插入耳机端口,打开音乐。侧键音量开到最大,出现提示框“将音量调高到安全级别以上?会损坏听力”这样的提示。
而同样的路径打开收音机,点击侧音量键把音量调到最大,没有相应的提示。
[SOLUTION]
修改
1,privatestaticfinalintMSG_CHECK_FM_ACTIVE=29;


2,privatevoidonCheckFmActive(){
synchronized(mSafemediaVolumeState){
if(mSafeMediaVolumeState==SAFE_MEDIA_VOLUME_INACTIVE){
intdevice=getDeviceForStream(AudIOSystem.STREAM_FM);
if((device&mSafeMediaVolumeDevices)!=0){
sendMsg(mAudioHandler,MSG_CHECK_FM_ACTIVE,SENDMSG_REPLACE,0,0,null,
FM_ACTIVE_POLL_PERIOD_MS);
intindex=mStreamStates[Audiosystem.STREAM_FM]
.getIndex(device,false/*lastAudible*/);
if(AudioSystem.isStreamActive(AudioSystem.STREAM_FM,0)
&&(index>mSafeMediaVolumeIndex)){
//Approximatecumulativeactivemusictime
mFmems+=FM_ACTIVE_POLL_PERIOD_MS;
if(mFmeMs>UNSAFE_VOLUME_FM_ACTIVE_MS_MAX){
setSafeMediaVolumeenabled(true);
mFmeMs=0;
mVolumePanel.postdisplaySafeVolumeWarning();
}
}
}
}
}
}


3,在caseMSG_CHECK_MUSIC_ACTIVE:
onCheckMusicActive();
break;
后面增加
///M:safemediaforFM@{
caseMSG_CHECK_FM_ACTIVE:
onCheckFmActive();
break;
///safemediaforFM@}


4,在privatevoidonSetWiredDeviceConnectionState(intdevice,intstate,Stringname)
sendMsg(mAudioHandler,
MSG_CHECK_MUSIC_ACTIVE,
SENDMSG_REPLACE,
0,
0,
null,
MUSIC_ACTIVE_POLL_PERIOD_MS);
后面增加
///safemediaforFM@{
sendMsg(mAudioHandler,MSG_CHECK_FM_ACTIVE,SENDMSG_REPLACE,0,0,null,
FM_ACTIVE_POLL_PERIOD_MS);
///safemediaforFM@}


5,在privatestaticfinalintSAFE_VOLUME_CONFIGURE_TIMEOUT_MS=30000;//30safterbootcompleted后面增加如下
privateintmFmeMs;
privatestaticfinalintUNSAFE_VOLUME_FM_ACTIVE_MS_MAX=(20*3600*1000);//20
//hours
privatestaticfinalintFM_ACTIVE_POLL_PERIOD_MS=60000;//1minute


6,以下几个函数改为如下
privatevoidsetSafeMediaVolumeEnabled(booleanon){
synchronized(mSafeMediaVolumeState){
if((mSafeMediaVolumeState!=SAFE_MEDIA_VOLUME_NOT_CONFIGURED)
&&(mSafeMediaVolumeState!=SAFE_MEDIA_VOLUME_DISABLED)){
if(on&&(mSafeMediaVolumeState==SAFE_MEDIA_VOLUME_INACTIVE)){
mSafeMediaVolumeState=SAFE_MEDIA_VOLUME_ACTIVE;
enforceSafeMediaVolume();
}elseif(!on&&(mSafeMediaVolumeState==SAFE_MEDIA_VOLUME_ACTIVE)){
mSafeMediaVolumeState=SAFE_MEDIA_VOLUME_INACTIVE;
mMusicActiveMs=0;
sendMsg(mAudioHandler,MSG_CHECK_MUSIC_ACTIVE,SENDMSG_REPLACE,0,0,null,
MUSIC_ACTIVE_POLL_PERIOD_MS);
mFmeMs=0;
sendMsg(mAudioHandler,MSG_CHECK_FM_ACTIVE,SENDMSG_REPLACE,0,0,null,
FM_ACTIVE_POLL_PERIOD_MS);
}
}
}
}
privatevoidenforceSafeMediaVolume(){
enforceSafeMediaVolume(AudioSystem.STREAM_MUSIC);
enforceSafeMediaVolume(AudioSystem.STREAM_FM);
}
privatevoidenforceSafeMediaVolume(intstreamType){
VolumeStreamStatestreamState=mStreamStates[streamType];
booleanlastAudible=(streamState.muteCount()!=0);
intdevices=mSafeMediaVolumeDevices;
inti=0;
while(devices!=0){
intdevice=1<<i++;
if((device&devices)==0){
continue;
}
intindex=streamState.getIndex(device,lastAudible);
if(index>mSafeMediaVolumeIndex){
if(lastAudible){
streamState.setLastAudibleIndex(mSafeMediaVolumeIndex,device);
sendMsg(mAudioHandler,MSG_PERSIST_VOLUME,SENDMSG_QUEUE,PERSIST_LAST_AUDIBLE,
device,streamState,PERSIST_DELAY);
}else{
streamState.SETindex(mSafeMediaVolumeIndex,device,true);
sendMsg(mAudioHandler,MSG_SET_DEVICE_VOLUME,SENDMSG_QUEUE,device,0,
streamState,0);
}
}
devices&=~device;
}
}
privatebooleancheckSafeMediaVolume(intstreamType,intindex,intdevice){
synchronized(mSafeMediaVolumeState){
if((mSafeMediaVolumeState==SAFE_MEDIA_VOLUME_ACTIVE)
&&(mStreamVolumeAlias[streamType]==AudioSystem.STREAM_MUSIC||mStreamVolumeAlias[streamType]==AudioSystem
.STREAM_FM)
&&((device&mSafeMediaVolumeDevices)!=0)&&(index>mSafeMediaVolumeIndex)){
mVolumePanel.postDisplaySafeVolumeWarning();
returnfalse;
}
returntrue;
}
}
///safemediaforFM@}
(alps/Frameworks/base/media/Java/android/media/AudioService.java)
然后
mkxxx(project_name)mmframeworks/base
adbremount
adbpushframework.jarsystem/framework
adbreboot

即可验证功能。
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表