Android开发:切换听筒模式与扬声器模式

开发语言: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);
   }
 }

小白的进阶之路,感谢大家的支持!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。