android播放视频时在立体声与单声道之间切换无变化原因分析及解决

abc巴比伦王子

abc巴比伦王子

2016-02-19 09:30

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的android播放视频时在立体声与单声道之间切换无变化原因分析及解决,过去的都会过去,迎接崭新的开始,释放更美好的自己。
部分客户客户使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用
原因是由于在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;
}
展开更多 50%)
分享

猜你喜欢

android播放视频时在立体声与单声道之间切换无变化原因分析及解决

编程语言 网络编程
android播放视频时在立体声与单声道之间切换无变化原因分析及解决

android fm单体声和立体声的切换示例代码

编程语言 网络编程
android fm单体声和立体声的切换示例代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Win7立体声混音在哪

电脑网络
Win7立体声混音在哪

MAC系统Apple TV如何设置环绕立体声

电脑入门
MAC系统Apple TV如何设置环绕立体声

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

win7电脑如何打开立体声混音

电脑网络
win7电脑如何打开立体声混音

WIN7下找回失踪的立体声混音

电脑入门
WIN7下找回失踪的立体声混音

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

javascript事件模型代码

javascript事件模型代码

使用java获取md5值的两种方法

使用java获取md5值的两种方法
下拉加载更多内容 ↓