`
bogongjie
  • 浏览: 235907 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android插入耳机状态使用扬声器外放音乐

阅读更多

插入耳机的时候也可以选择使用扬声器播放音乐,来电铃声就是这么用的。但是只能用MediaPlayer,播放音频文件。
使用AudioTrack.write播放是行不通的。按理说AudioRecord、AudioTrack类相对于MediaRecorder mediaPlayer来说,更加接近底层,应该也行得通的。

AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);  
audioManager.setMicrophoneMute(false);          
audioManager.setSpeakerphoneOn(true);//使用扬声器外放,即使已经插入耳机  
//setVolumeControlStream(AudioManager.STREAM_MUSIC);//控制声音的大小  
audioManager.setMode(AudioManager.STREAM_MUSIC);

 

切换扬声器模式和听筒模式 需要增加权限:

 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission>

 

分享到:
评论

相关推荐

    android听筒和扬声器切换,兼容5.0以上

    总的来说,实现Android应用中的听筒和扬声器切换涉及到对`AudioManager`的深入理解和巧妙使用。通过合理配置音频流类型、音频模式,以及监听设备状态变化,可以构建一个稳定且兼容性强的解决方案。在开发过程中,...

    android安卓切换听筒-外放-蓝牙耳机设备

    在Android系统中,切换音频输出设备是常见的需求,如从听筒切换到扬声器(外放)或者蓝牙耳机。这个过程涉及到Android的音频框架,它是一个复杂的系统级服务,负责处理音频输入和输出。本篇文章将深入探讨如何在...

    Android 听筒扬声器切换(多机型兼容、兼容5.0以上)

    Android 听筒扬声器切换(多机型兼容、兼容5.0以上) 亲测有效机型(案例有限、仅供参考) 三星系:SM-A9000、SM-S5 魅族系:魅蓝E(yun os)、魅蓝note5 小米系:红米1s、小米note Vivo系:忘了什么型号了 详细...

    Android通话默认打开扬声器的方法

    在Android系统中,如果你希望在电话接通时自动开启扬声器,即使用免提模式,你需要对系统级服务InCallService进行定制。这个服务主要负责处理电话的接听、挂断以及音频路由等操作。以下将详细介绍如何实现这一功能。...

    安卓声波通讯耳机相关-Android利用广播接收器检测用户是否插入耳机.rar

    当耳机拔出时,恢复到扬声器播放模式,重新显示屏幕。 5. **权限请求**: 虽然ACTION_HEADSET_PLUG广播不需要额外的权限,但确保应用有足够的权限进行音频操作,例如在AndroidManifest.xml中添加`...

    android 检测耳机是否插入方法

    本文将详细介绍如何使用Android SDK提供的API来检测耳机的状态,并通过BroadcastReceiver监听耳机的插入和拔出。 首先,我们可以使用AudioManager类中的`isWiredHeadsetOn()`方法来检查当前是否连接了有线耳机。这...

    android 蓝牙耳机开发

    开发者需要深入了解Android系统提供的蓝牙API,包括`BluetoothHeadsetService`、`BluetoothHandsfree`以及相关意图和过滤器的使用。此外,掌握RFCOMM连接机制和SDP查询流程对于实现稳定的蓝牙耳机连接至关重要。通过...

    Android利用广播实现耳机的线控

    当耳机被拔出时,Android会发送一个ACTION_AUDIO_BECOMING_NOISY的Intent,这通常用于停止音乐播放,防止扬声器突然发出声音。在`onReceive()`方法中加入这部分逻辑: ```java if (action.equals(Intent.ACTION_...

    监听耳机是否插入

    AudioManager就有这个方法:isWiredHeadsetOn(); 如果插入了耳机,就返回true,否则false;...在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听“android.intent.action.HEADSET_PLUG”广播

    android 播放报警声音

    Android系统提供了多种方式来播放音频,包括使用`MediaPlayer`类、`AudioTrack`类和`SoundPool`类等。对于播放报警声音,通常选择`MediaPlayer`,因为它易于使用且功能强大,可以处理各种音频格式。 1. **...

    安卓 手机连接蓝牙耳机状态测试

    在安卓系统中,连接蓝牙耳机是一项常见的操作,用于享受无线音乐播放、通话或者听书等。本篇文章将详细讲解如何测试手机是否成功连接到蓝牙耳机,以及涉及的相关知识点。 首先,我们要了解蓝牙耳机与安卓手机连接的...

    Android高级应用源码-Android的热插拔监听源代码,可以用来监听耳机之类的热插拔事件发生.zip

    而拔出时,切换回手机扬声器播放。 5. **处理权限**:由于涉及到硬件接口的访问,可能需要申请额外的权限,例如`ACCESSIBILITY_SERVICE`,以确保应用能够正确地监听和处理设备事件。 6. **线程管理**:由于UEvent...

    Android沉浸式状态栏demo代码

    在Android开发中,沉浸式状态栏(Translucent Status Bar)是一种设计趋势,它允许应用内容延伸到状态栏下方,提供更为美观且连续的用户体验。这个"Android沉浸式状态栏demo代码"应该包含了一个实例,展示了如何在...

    android耳机综述

    原本可能通过扬声器输出的声音会自动切换到耳机,这涉及到音频混音器和音频策略的调整。此外,电话功能也会受到影响,耳机插入后,电话音频会自动转接到耳机,提供更清晰的通话质量。这一过程需要音频服务的支持,...

    android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

    在Android开发中,沉浸式状态栏(Immersive Mode)是一种设计趋势,它允许应用程序的内容扩展到设备的状态栏和导航栏,提供更为沉浸式的用户体验。本文将深入探讨如何在Android 4.4(KitKat)及更高版本上实现沉浸式...

    Android 沉浸式状态栏的实现方法、状态栏透明的实现方法

    总之,实现Android沉浸式状态栏和透明状态栏主要依赖于正确设置主题、在布局文件中处理`fitsSystemWindows`属性,以及根据Android版本适当地使用系统UI标志。通过对这些知识点的掌握,开发者可以轻松地为自己的应用...

    android监听蓝牙设备的连接状态

    在Android中,我们可以利用BroadcastReceiver(广播接收器)来捕获蓝牙设备的这些状态变化。广播接收器是Android系统中一个重要的组件,它能够监听并响应系统或应用发出的各种广播事件。 以下是一些关键步骤: 1. ...

    Android 蓝牙 Audio音频输出通道切换详解_卡音,多年安卓开发经验,从实际项目中获取到的经验,对安卓开发者非常有帮助。

    可以通过 setSpeakerphoneOn(boolean on) 方法直接选择外放扬声器发声,或者使用 setBluetoothScoOn(boolean on) 方法要求使用蓝牙 SCO 耳机进行通讯。 蓝牙耳机的两种链路 Android 的 API 表明,蓝牙耳机有两种...

    android检测U盘插拔事件

    首先,我们来详细讲解使用广播接收器监听U盘热插拔的方法。在Android中,系统会发送一个名为`ACTION_USB_DEVICE_ATTACHED`的广播当U盘插入,以及`ACTION_USB_DEVICE_DETACHED`的广播当U盘被移除。我们可以创建一个...

    Android背景音乐设置代码

    本教程将深入探讨如何在Android中实现这一功能,重点聚焦于`PreferenceActivity`的使用以及如何选择SD卡上的音乐文件作为背景音乐。 首先,我们需要理解`PreferenceActivity`。`PreferenceActivity`是Android提供的...

Global site tag (gtag.js) - Google Analytics