开发语言:Java
开发生态:Android
在音视频开发中,经常会遇到听筒与扩音器两种模式转换的需求,在此记录下。
一、添加权限
<!-- 音频控制器权限-->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
⚠️权限非常重要,如果没有调用权限,后续操作也就无法实现。
二、实现步骤
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) {
// 打开扬声器
openSpeaker();
} else {
// 关闭扬声器
closeSpeaker();
}
}
}
// 打开扬声器
public void openSpeaker() {
if (!audioManager.isSpeakerphoneOn()) {
audioManager.setSpeakerphoneOn(true);
}
}
// 关闭扬声器
public void closeSpeaker() {
if (audioManager.isSpeakerphoneOn()) {
audioManager.setSpeakerphoneOn(false);
}
}
小白的进阶之路,感谢大家的支持!