Android開(kāi)發(fā):切換聽(tīng)筒模式與揚(yáng)聲器模式

開(kāi)發(fā)語(yǔ)言:Java
開(kāi)發(fā)生態(tài):Android

在音視頻開(kāi)發(fā)中,經(jīng)常會(huì)遇到聽(tīng)筒與擴(kuò)音器兩種模式轉(zhuǎn)換的需求,在此記錄下。

一、添加權(quán)限

<!-- 音頻控制器權(quán)限-->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

??權(quán)限非常重要,如果沒(méi)有調(diào)用權(quán)限,后續(xù)操作也就無(wú)法實(shí)現(xiàn)。

二、實(shí)現(xiàn)步驟

 private AudioManager audioManager;

 // 初始化AudioManager
 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
       ....
   audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
       ....
 }

 // 切換方法
 private void onSetListener(boolean isCall) {
   if (audioManager != null) {
     if (isCall) {
       // 打開(kāi)揚(yáng)聲器
       openSpeaker();
     } else {
       // 關(guān)閉揚(yáng)聲器
       closeSpeaker();
     }
   }
 }

 // 打開(kāi)揚(yáng)聲器
 public void openSpeaker() {
   if (!audioManager.isSpeakerphoneOn()) {
     audioManager.setSpeakerphoneOn(true);
   }
 }

 // 關(guān)閉揚(yáng)聲器
 public void closeSpeaker() {
   if (audioManager.isSpeakerphoneOn()) {
     audioManager.setSpeakerphoneOn(false);
   }
 }

小白的進(jìn)階之路,感謝大家的支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容