手抄报 安全手抄报 手抄报内容 生活知识 英语手抄报 清明节手抄报 节约用水手抄报 知识问答

Android4.4.4双声卡同时出声

时间:2024-10-16 12:59:13

1、修改AudioHardware.cpp文件,在AudioHardware::AudioHardware() 构造函数头部的mPcm(NULL),一句后面添加mPcm1(NULL),一句,然后在AudioHardware::~AudioHardware()析构函数体内的TRACE_DRIVER_IN(DRV_MIXER_CLOSE)一句前添加如下内容:if (mPcm1) {route_pcm1_close();}接下来在struct pcm *AudioHardware::openPcmOut_l()函数体内的return mPcm;前一个}括号符前添加如下内容:mPcm1 = route_pcm1_open(2, flags); //其中2为声卡2(除默认外的第2张声卡,可查看/proc/asound/cards获得该序号,请根据实际修改)接下来在void AudioHardware::closePcmOut_l()函数体内的mPcm = NULL;后面添加如下内容:route_pcm1_close();mPcm1 = NULL;接下来在ssize_t AudioHardware::AudioStreamOutALSA::write函数体内的ret = pcm_write(mHardware->getPcm(),(void*) p, bytes);一句后面添加ret = pcm_write(mHardware->getPcm1(),(void*) p, bytes);一句。

2、修改AudioHardware.h文件,在struct pcm *getPcm() { return mPcm; };后面添加struct pcm *getPcm1() { return mPcm1; };一句,在android::SortedVector < android::sp > mInputs;android::Mutex mLock;struct pcm* mPcm;后面添加struct pcm* mPcm1;一句。

3、修改alsa_audio.h文件,添加如下内容:struct pcm *route_pcm1_open(int card, unsigned int flags);int route_pcm1_close(void);

4、修改alsa_route.c文件,在struct pcm* mPcm[PCM_MAX + 1];后面添加struct pcm* mPcm1;一句,在文件尾部添加如下内容:struct pcm *route_pcm1_open(int card, unsigned flags){ALOGD("lxt route_pcm1_open()");flags &= ~PCM_CARD_MASK;switch(card) {case 1:flags |= PCM_CARD1;break;case 2:flags |= PCM_CARD2;break;default:flags |= PCM_CARD1;break;}flags &= ~PCM_DEVICE_MASK;flags |= PCM_DEVICE0;mPcm1 = pcm_open(flags);return mPcm1;}int route_pcm1_close(void){ALOGD("lxt route_pcm1_close()");pcm_close(mPcm1);return 0;}至此,相关代码修改完成。

© 2026 手抄报圈
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com