我正在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