【问题标题】:ACTION_HEADSET_PLUG slow broadcast responseACTION_HEADSET_PLUG 慢广播响应
【发布时间】:2016-01-09 02:27:38
【问题描述】:

我希望我的音乐播放器在耳机断开时暂停音乐,并在耳机重新连接时恢复音乐。我将此设置与广播接收器一起使用,但问题是在我断开耳机后,我可以在一瞬间听到扬声器播放的音乐。就像我的接收器没有足够快地接收广播?怎么回事?

在这里,我在我的主要活动类的onCreate 方法中注册我的接收器

MusicIntentReceiver receiver = new MusicIntentReceiver();
registerReceiver(receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));

这是我的意图接收器类

public class MusicIntentReceiver extends android.content.BroadcastReceiver {
    @Override
    public void onReceive(Context ctx, Intent intent) {

        if (intent.getAction().equals(android.media.AudioManager.ACTION_HEADSET_PLUG)) {

            if(intent.getIntExtra("state",0)==0){ // 0 for unplugged (if it becomes unplugged)

                //Pause music
            }

            if(intent.getIntExtra("state",0)==1){ // 1 for plugged (if it becomes plugged)

                //Resume music
            }
        }
    }
}

【问题讨论】:

    标签: android


    【解决方案1】:

    尝试在 AudioManager.ACTION_AUDIO_BECOMING_NOISY 上暂停音乐 - 它在 AudioManager.ACTION_HEADSET_PLUG 之前出现(大约 1 秒)。比如:

    IntentFilter filter = new IntentFilter();
    filter.addAction(AudioManager.ACTION_HEADSET_PLUG);
    filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
    registerReceiver(receiverHeadset, filter);
    

    ...

    public class MusicIntentReceiver extends android.content.BroadcastReceiver {
        @Override
        public void onReceive(Context ctx, Intent intent) {
            if (intent.getAction().equals(AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
                // Pause music
            } else if (intent.getAction().equals(android.media.AudioManager.ACTION_HEADSET_PLUG)) {
    
                if(intent.getIntExtra("state",0)==1){ // 1 for plugged (if it becomes plugged)
    
                    //Resume music
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多