ACTION_HEADSET_PLUG广播延迟

时间:2010-11-08 13:43:52

标签: android broadcastreceiver headset

我有BroadcastReceiverIntent.ACTION_HEADSET_PLUG动作实例。实际物理拔出耳机与我BroadcastReceiver被通知的时刻之间有大约1-2秒的延迟。

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY - 1);
registerReceiver(new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
    // my code here
  }
}, filter);

任何想法如何减少延迟?

2 个答案:

答案 0 :(得分:8)

处理AudioManager.ACTION_AUDIO_BECOMING_NOISY广播做了诀窍:)它的意图是在耳机没有任何延迟的情况下直接播放。

答案 1 :(得分:3)

你运气不好。

延迟在框架中硬编码,请查看

frameworks/base/services/java/com/android/server/HeadsetObserver.java

由于音频管道中存在垃圾的风险,延迟时间为1000毫秒。