发布于 2016-02-19 10:07:48 | 162 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Android移动端操作系统

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。


使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用,原因是由于在HAL层默认没有处理上层发的stereo 转mono的命令,具体的解决方法如下
部分客户客户使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用
原因是由于在HAL层默认没有处理上层发的stereo 转mono的命令,所以会没有效果,

可按如下修改,添加相关处理:
1修改AudioMTKHardware.cpp
添加:static String8 keySetStereo2MonoMode = String8("EnableStereoOutput");

2.修改status_t AudioMTKHardware::setParameters(const String8 &keyValuePairs)
在EXIT_SETPARAMETERS:
之前添加:
 
if (param.getInt(keySetStereo2MonoMode, value) == NO_ERROR) { 
ALOGD("setParameters(): %s value=%d", keyValuePairs.string(),value); 
((AudioMTKStreamManager*)mAudioMTKStreamManager)->ForceSterer2Mono(value); 
} 


3.修改AudioMTKStreamManager.h
添加public方法定义:
 
status_t ForceSterer2Mono(bool flag); 
status_t AudioMTKStreamManager::ForceSterer2Mono(bool flag) 
{ 
// force all stream to standby 
ALOGD("ForceSterer2Mono = %d",flag); 
if (mStreamOutVector.size()) { 
for (size_t i = 0; i < mStreamOutVector.size() ; i++) { 
AudioMTKStreamOut *pTempOut = (AudioMTKStreamOut *)mStreamOutVector.valueAt(i); 
pTempOut->SetStereoToMonoFlagForce(flag); 
} 
} 
return NO_ERROR; 
} 

4.修改AudioMTKStreamOut.h
t添加定义:
 
status_t SetStereoToMonoFlagForce(bool flag); 
status_t AudioMTKStreamOut::SetStereoToMonoFlagForce(bool flag) 
{ 
ALOGD("SetStereoToMonoFlagForce = %d",flag); 
mSteroToMono = flag; 
return NO_ERROR; 
} 


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务