android - KeyEvent getRepeatCount() 总是返回 0

标签 android keyevent android-tv

我正在使用远程安卓电视
要在使用按下遥控按钮时捕捉事件,我使用以下代码:

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;

我看到当我按下 Remote 上的 1 个按钮时,getRepeateCount()总是返回 0。
我想如果我按下重复它应该大于 0。

这里有什么问题?

最佳答案

当你按下一个键,松开它,然后再次按下它,你会收到两个 ACTION_DOWN事件和 getRepeatCount()两者都将返回 0。要查看非零 getRepeatCount()值,您必须按住键足够长的时间才能开始重复。

你可以这样想。如果我通过按下并释放键盘的 A 键 10 次在此文本字段中键入“aaaaaaaaaa”,我将获得 10 个事件,每个事件的重复计数为零。但是,如果我按住 A 键的时间足够长,以至于我开始得到多个“a”,那么我将得到 10 个事件,每个事件的重复次数都在增加。

关于android - KeyEvent getRepeatCount() 总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47825114/

相关文章:

c# - 在移动应用程序中使用 Google 进行图像搜索

java - KeyEvent 不是由 JFrame java 生成的吗?

android - ViewPager 类似于 AndroidTV 中 BrowseFragment 中的东西

android - ConnectionResult{statusCode=INTERNAL_ERROR, resolution=null, message=null}

android - 如何在应用购买中修复 Android TV 中的 "error processing purchase. [DF-PDP-3]"错误

android - 如何处理低功耗蓝牙中的 16 位特征

Android Compose ModalBottomSheetLayout 外部点击

android - 如何使用 gdbclient 在 Nexus 7 上调试内核?

javascript - 在 Javascript 中创建按键事件

java - 为什么一旦 run() 方法中的 if 语句为 true,我就不能再使用 keyPressed 了?