国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

一種奇葩耳機(jī)與喇叭互斥的實(shí)現(xiàn)方式

2019-11-09 16:43:15
字體:
供稿:網(wǎng)友

一種奇葩耳機(jī)與喇叭互斥的實(shí)現(xiàn)方式

所謂耳機(jī)與喇叭的互斥,是指當(dāng)耳機(jī)插入時(shí),喇叭通道自動(dòng)關(guān)閉,聲音從耳機(jī)中輸出;當(dāng)耳機(jī)拔出時(shí),喇叭通道打開。

Android平臺(tái)標(biāo)準(zhǔn)的實(shí)現(xiàn)「耳機(jī)與喇叭互斥」的方式是:標(biāo)準(zhǔn)耳機(jī)接口硬件(帶的插入檢測(cè)) -> 連接到CPU的GPIO -> 內(nèi)核檢測(cè)到GPIO變化后改變/sys/class/switch/h2w/state中的值 -> Android上層系統(tǒng)讀取該文件以判斷當(dāng)前耳機(jī)狀態(tài) -> 系統(tǒng)將新的耳機(jī)狀態(tài)以廣播方式發(fā)送給APP。

當(dāng)我要在一個(gè)指定的板子上實(shí)現(xiàn)錄音功能時(shí),手上這個(gè)塊板沒有引出外置Mic,只好從耳機(jī)插座入手。我在耳機(jī)插入時(shí),讓系統(tǒng)仍然認(rèn)為是未插入狀態(tài),這樣以保證外置喇叭能正常出聲,即「打破耳機(jī)與喇叭的互斥」。我開始測(cè)試這個(gè)主板「耳機(jī)與喇叭互斥」的實(shí)現(xiàn)方式時(shí)發(fā)現(xiàn)有些許不同: 1. /sys/class/switch/h2w/state中的值并不會(huì)隨著耳機(jī)插拔而變化; 2. Android上層不能收到耳機(jī)插拔的廣播或者消息; 3. 將耳機(jī)接口硬件上的檢測(cè)插拔功能禁用后(用攝子短接兩個(gè)檢測(cè)腳)仍然可以切換通道;

這里寫圖片描述

以上三條說明該主板并未按照Android平臺(tái)標(biāo)準(zhǔn)方式實(shí)現(xiàn),介于主板廠家不給提供原理圖,只能從硬件電路一點(diǎn)一點(diǎn)測(cè)試推導(dǎo)。經(jīng)反復(fù)測(cè)試,耳機(jī)插座在插拔耳機(jī)時(shí)另外一個(gè)不同之處是Mic腳與GND腳的壓差會(huì)變化,如下:

耳機(jī)狀態(tài) 壓差 備注
拔出 2.5V
插入 1.8V

而從喇叭處倒推出來的差異時(shí),耳機(jī)的插拔會(huì)導(dǎo)致功放IC的使能腳電平被拉低為0。手繪出的電路圖如下: 這里寫圖片描述 經(jīng)測(cè)試最接近功放的一個(gè)三極管經(jīng)去掉后,插入耳機(jī)時(shí),使能腳電平不再被拉低了,這樣就實(shí)現(xiàn)了「打破耳機(jī)與喇叭的互斥」的目的了。這里簡(jiǎn)單補(bǔ)充一下純硬件實(shí)現(xiàn)聲道切換的壞處:系統(tǒng)(APP)無法得到耳機(jī)的插拔事件,會(huì)導(dǎo)致對(duì)應(yīng)耳機(jī)插拔的事件無法進(jìn)行處理,比如拔出耳機(jī)時(shí)一般的音樂播放器會(huì)暫停插入音樂等等。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大兴区| 泸水县| 竹北市| 三原县| 和平区| 定日县| 大理市| 达州市| 栾川县| 读书| 江孜县| 保定市| 仁化县| 正宁县| 永吉县| 新兴县| 乌兰县| 北辰区| 芮城县| 平山县| 湖口县| 福建省| 乐清市| 洮南市| 杂多县| 新化县| 五河县| 晋中市| 奉新县| 杭锦旗| 太康县| 略阳县| 密云县| 丰县| 故城县| 肃南| 麻江县| 江陵县| 灵丘县| 汝南县| 叶城县|