黑马程序员技术交流社区

标题: android开发中关于耳机的那些事 [打印本页]

作者: 大山哥哥    时间: 2017-4-29 09:19
标题: android开发中关于耳机的那些事
    最近在看耳机这块的东西感觉有些东西还是蛮有意思的,所以整理了点东西出来,大家互相学习交流~
    废话不多说,开始~
    大家肯定有注意过一个问题,那就是在用音乐播放器的时候有时候如果在听音乐的过程中突然拔掉耳机,那么音乐就会暂停对吧~那具体怎么实现的呢?
来看代码
[Java] 纯文本查看 复制代码
 IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
        HeadsetBroadcastReceiver mHeadsetBroadcastReceiver= new HeadsetBroadcastReceiver();
        registerReceiver(mHeadsetBroadcastReceiver, filter);



public class HeadsetBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        /**
         * 根据系统返回的状态判断是否耳机插拔状态
         */
        if (intent.hasExtra("state")) {
            if (intent.getIntExtra("state", 0) == 0) {
                Toast.makeText(context, "拔出耳机", Toast.LENGTH_SHORT).show();
            } else if (intent.getIntExtra("state", 0) == 1) {
                Toast.makeText(context, "插入耳机", Toast.LENGTH_SHORT).show();
            }
        }
    }

}
ok,那接下来提供第二种场景,那就是咱们在自己写播放音乐的时候,有时候你会发现哪怕是插入耳机,扬声器依然在播放。解决方案~
[Java] 纯文本查看 复制代码
Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default
// behavior, use FORCE_NONE (0).
setForceUse.invoke(null, 1, 1);



作者: rimfwfn    时间: 2017-5-1 17:46
刚开始学,暂时还看不懂,存起来先

作者: baby14    时间: 2018-12-10 10:34
多谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2