运行Exoplayer演示应用程序时,默认控件ui将SeekBar focusable
设置为false
。我认为这对可访问性不利,所以在我的自定义UI中,我将焦点改为true。
但是,使用箭头时,进度不会改变。 SeekBar
会更新,但会在更新后返回初始位置。
我还创建了另一个SeekBar
用于测试目的,使用箭头键工作正常。
是否有任何理由让Exoplayer开发人员将其设置为false,或者有办法解决它?
答案 0 :(得分:2)
开发人员可能不认为SeekBar是使用非触摸输入或TalkBack等可访问性服务来控制视频的合适组件。
你绝对可以实现一些适用于键盘的东西,至少对于桌面模式。例如。即使SeekBar没有聚焦,YouTube.com也允许用户使用左/右箭头键向后/向前搜索。
SeekBar 也可以使用tab键,但在Android上,光标键也是在可聚焦组件之间导航的合法功能,因此它更难实现同样的用户体验。
另一方面,您也可以使用SeekBar控件进行其他辅助功能考虑。控制的一个关键部分是拖动能力 - 使用TalkBack,您需要两个手指才能拖动。由于SeekBar无论如何都是一个小控件,用两根手指拖动播放头非常困难,如果你不能看播放头,那就更难了。
为什么当你使SeekBar成为焦点并且用键盘更新进度时它没有反应?它checks for user touch input之前将它视为合法的搜索(我猜这有几个原因,包括在用户拖动时不经常搜索,或者程序化的SeekBar更新不会触发进一步搜索)。
建议您使用ExoPlayer创建自己的UI以仅处理媒体。这样,您就可以明确控制播放器的用户体验和用户界面。
例如,在YouTube应用中,如果启用了TalkBack,则会显示不同的用户界面(有libraries which can aid with this),在屏幕上覆盖跳过后退/转发按钮。
参考源代码: