我正在ExoPlayer之上开发一个自定义用户界面,并且我注意到当我点击屏幕时,控件(PlaybackControlView
)隐藏。Exoplayer hide PlaybackControlView onClick(不是onTouch)
我想更改为点击并检查了如何更改事件侦听器,但到目前为止找不到简单的解决方案。我检查了源SimpleExoPlayerView.java
,我发现,它实际上是硬编码:
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (!useController || player == null || ev.getActionMasked() != MotionEvent.ACTION_DOWN) {
return false;
}
if (controller.isVisible()) {
controller.hide();
} else {
maybeShowController(true);
}
return true;
}
到目前为止,我能想到的两种解决方案。一种是改变ExoPlayer的源代码,但我不喜欢它,因为每次更新ExoPlayer时都必须进行修改。
我能想到的第二个解决方案就是自己尝试自己处理它,例如,添加我自己的侦听器,以及自己显示和隐藏控件。我还没有尝试过,但似乎有可能。
是否有另一个更好的解决方案,如重写监听器等?
更新:我使用的定制UI通过虚报exo_playback_control_view.xml
谢谢。我喜欢你在这里建议,它的工作原理。所以在这种情况下,我实际上使用了第二种方法,我取消了默认动作,并处理了我自己,例如onClick。 – AMD
我很高兴你喜欢它。请接受它,如果它是你的问题一个很好的答案:) –
您的解决方案正确停止ontouch行动,但它不使用'GestureDetector'和'SimpleOnGestureListener',使用使用点击的onClick – AMD