android播放視頻時在立體聲與單聲道之間切換無變化原因分析及解決
更新時間:2013年06月02日 17:05:16 作者:
使用第三方視頻播放器,有立體聲與單聲道之間切換,發(fā)現(xiàn)切換后無作用,原因是由于在HAL層默認沒有處理上層發(fā)的stereo 轉(zhuǎn)mono的命令,具體的解決方法如下
部分客戶客戶使用第三方視頻播放器,有立體聲與單聲道之間切換,發(fā)現(xiàn)切換后無作用
原因是由于在HAL層默認沒有處理上層發(fā)的stereo 轉(zhuǎn)mono的命令,所以會沒有效果,
可按如下修改,添加相關(guān)處理:
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;
}
原因是由于在HAL層默認沒有處理上層發(fā)的stereo 轉(zhuǎn)mono的命令,所以會沒有效果,
可按如下修改,添加相關(guān)處理:
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;
}
您可能感興趣的文章:
相關(guān)文章
OkHttp攔截器在Android網(wǎng)絡中的使用和工作原理
當涉及到Android應用程序中的網(wǎng)絡請求處理時,OkHttp是一個非常強大和流行的工具,其中一個關(guān)鍵的功能是攔截器,在本文中,我們將深入研究OkHttp攔截器,了解其工作原理以及如何使用它們來優(yōu)化您的Android應用程序,需要的朋友可以參考下2023-09-09Android使用BottomNavigationBar實現(xiàn)底部導航欄
這篇文章主要為大家詳細介紹了Android使用BottomNavigationBar實現(xiàn)底部導航欄,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02Android studio 3.0 查看手機文件系統(tǒng)的方法(超簡單)
本文給大家分享Android studio更新到3.0版本之后,查看手機文件系統(tǒng)的方法,需要的朋友參考下吧2017-11-11Android PickerView實現(xiàn)三級聯(lián)動效果
這篇文章主要為大家詳細介紹了Android PickerView實現(xiàn)三級聯(lián)動效果,PickerView實現(xiàn)全國地址的選擇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01Android編程滑動效果之Gallery+GridView實現(xiàn)圖片預覽功能(附demo源碼下載)
這篇文章主要介紹了Android編程滑動效果之Gallery+GridView實現(xiàn)圖片預覽功能,結(jié)合實例形式分析了Android通過GridView和Gallery兩個控件模仿Gallery圖像集圖片預覽功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02