KeyEvent getRepeatCount()始终返回0 [英] KeyEvent getRepeatCount() always return 0
问题描述
我正在使用远程Android TV 要在使用时捕获事件,请按远程按钮,我使用以下代码:
I'm working with remote android TV To catch event when use press remote button I use this code:
public boolean dispatchKeyEvent(KeyEvent event) {
Log.d("LOG", "Number repeate count = " + event.getRepeatCount());
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_1:
exoPlayerManager.showControllerView();
if (event.getRepeatCount() > 0) {
if (videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed >= 64) {
((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setVisibility(View.GONE);
videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(1, 1.0f));
} else {
videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(2 * videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed, 1.0f));
}
((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setText(videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed + "X");
}else if (videoPlayerView.getPlaybackControlView() != null) {
return videoPlayerView.getPlaybackControlView().dispatchKeyEvent(event);
}
break;
我看到当我按遥控器上的1按钮时,getRepeateCount()
总是返回0.
我想如果我按重复,它应该大于0.
I see that when I press 1 button on remote, getRepeateCount()
always return 0.
I think if i pressed duplicate it should be greater 0.
这是怎么了?
推荐答案
当您按下一个键,释放它,然后再次按下它时,您将收到两个ACTION_DOWN
事件,而getRepeatCount()
都将返回0 .要查看非零的getRepeatCount()
值,您必须按住键 足够长的时间,以便它开始重复.
When you press a key, release it, and then press it again, you will receive two ACTION_DOWN
events, and getRepeatCount()
will return 0 for both. To see a non-zero getRepeatCount()
value, you have to hold down the key long enough that it starts repeating.
您可以这样考虑.如果我通过按下并释放键盘的A键10次在此文本字段中键入"aaaaaaaaaa",我将获得10个事件,每个事件的重复计数为零.但是,如果我按住A键的时间足够长,以致我开始获得多个"a",那么我将获得10个事件,每个事件的重复计数都增加.
You can think about it like this. If I type "aaaaaaaaaa" into this text field by pressing and releasing my keyboard's A key 10 times, I'll get 10 events, each with a repeat count of zero. But if I hold my A key down long enough that I start getting multiple "a"s, then I'll get 10 events, each with an increasing repeat count.
这篇关于KeyEvent getRepeatCount()始终返回0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!