開(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)階之路,感謝大家的支持!