手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >android播放视频时在立体声与单声道之间切换无变化原因分析及解决
android播放视频时在立体声与单声道之间切换无变化原因分析及解决
摘要:部分客户客户使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用原因是由于在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;

}

【android播放视频时在立体声与单声道之间切换无变化原因分析及解决】相关文章:

android 浏览器之多窗口方案详解

android图库竖屏不显示status bar的解决方法

Android的单位以及屏幕分辨率详解

Android三种菜单实例分析

Android 4.1源码编译找不到资源文件解决办法

android 开发教程之日历项目实践(一)

android 开发教程之日历项目实践(三)

android图像绘制(一)多种方法做图像镜像

android 微信 sdk api调用不成功解决方案

android4.0混淆XmlPullParser报错原因分析解决

精品推荐
分类导航