我有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);
任何想法如何减少延迟?
答案 0 :(得分:8)
处理AudioManager.ACTION_AUDIO_BECOMING_NOISY
广播做了诀窍:)它的意图是在耳机没有任何延迟的情况下直接播放。
答案 1 :(得分:3)
你运气不好。
延迟在框架中硬编码,请查看
frameworks/base/services/java/com/android/server/HeadsetObserver.java
由于音频管道中存在垃圾的风险,延迟时间为1000毫秒。