5

我有自己BroadcastReceiver的行动实例Intent.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);

任何想法如何减少延迟?

4

2 回答 2

8

处理AudioManager.ACTION_AUDIO_BECOMING_NOISY广播成功了:) 它的意图是在耳机拔出后直接广播,没有任何延迟。

于 2010-11-24T13:20:37.120 回答
3

你运气不好。

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

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

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

于 2010-11-08T14:54:02.760 回答