广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-07 07:48:59 次阅读 稿源:互联网
    广告
    部分客户客户使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用
    原因是由于在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;
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告