A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大山哥哥 黑马粉丝团   /  2017-4-29 09:19  /  1404 人查看  /  2 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

    最近在看耳机这块的东西感觉有些东西还是蛮有意思的,所以整理了点东西出来,大家互相学习交流~
    废话不多说,开始~
    大家肯定有注意过一个问题,那就是在用音乐播放器的时候有时候如果在听音乐的过程中突然拔掉耳机,那么音乐就会暂停对吧~那具体怎么实现的呢?
来看代码
[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);


2 个回复

倒序浏览

回帖奖励 +1

刚开始学,暂时还看不懂,存起来先
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马