android - Exoplayer 搜索栏不适用于方向键

标签 android accessibility android-seekbar exoplayer talkback

运行 Exoplayer 演示应用程序时,默认控件 ui 将 SeekBar focusable 设置为 false。我认为这不利于可访问性,因此在我的自定义 UI 中,我将 focusable 更改为 true。

但是,使用箭头时,进度不会改变。 SeekBar 得到更新,但在更新后返回到初始位置。

我还创建了另一个 SeekBar 用于测试目的,并且使用箭头键可以正常工作。

Exoplayer 开发人员将其设置为 false 是否有任何原因,或者是否有解决方法?

最佳答案

开发人员可能不认为 SeekBar 是使用非触摸输入或无障碍服务(如 TalkBack)控制视频的合适组件。


你绝对可以实现一些与键盘一起工作的东西,至少对于桌面模式。例如。 YouTube.com 将允许用户使用向左/向右箭头键向后/向前搜索,即使在 SeekBar 未获得焦点时也是如此。

SeekBar 也可以使用 tab 键聚焦,但在 Android 上,光标键也是在 可聚焦组件之间导航的合法功能,因此更难实现相同的用户体验。


另一方面,对于 SeekBar 控件,您还有其他可访问性注意事项。控件的一个关键部分是拖动功能 - 使用 TalkBack 时,您需要两根手指才能拖动。由于 SeekBar 无论如何都是一个小控件,因此很难用两根手指拖动播放头,如果看不到播放头,则更难看到


当您使 SeekBar 可聚焦并使用键盘更新进度时,为什么它没有反应?它checks for user touch input在将其视为合法搜索之前(我想这有几个原因,包括在用户拖动时不不断搜索,或者程序化的 SeekBar 更新不会触发进一步的搜索)。


建议您使用 ExoPlayer 创建自己的 UI 以仅处理媒体。这样您就可以明确控制播放器的用户体验和用户界面。

例如,在 YouTube 应用上,如果启用了 TalkBack,它会显示不同的 UI(有 libraries which can aid with this ),将向后/向前跳按钮叠加到屏幕上。


引用源码:

关于android - Exoplayer 搜索栏不适用于方向键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418291/

相关文章:

angularjs - NVDA 屏幕阅读器读取文本上的可点击字词

xhtml - 在 WCAG 2.0 之后,我们应该遵循 WCAG 1.0 的任何准则吗?

android - SeekBar onProgressChanged() 问题

android - 如何让搜索栏在歌曲播放时自动移动?

java - 从移动设备到 PC 的 UDP 多播

android - 在 android 中以 AM/PM 格式显示时间

ios - 如何创建不同于 View 边界的 accessibilityFrame?

android - Seekbar 只显示进度颜色而不显示背景颜色

android - 在 Android 回收器 View 中以编程方式左右对齐 View

android - (Android) ScrollView 不会一直滚动到我的 LinearLayout 的底部