Drawable.Callback, AccessibilityEventSource, KeyEvent.Callback, ViewManager, ViewParentpublic class PlayerControlView extends FrameLayout
Player instances.
A PlayerControlView can be customized by setting attributes (or calling corresponding methods), overriding drawables, overriding the view's layout file, or by specifying a custom view layout file.
show_timeout - The time between the last user interaction and the controls
being automatically hidden, in milliseconds. Use zero if the controls should not
automatically timeout.
setShowTimeoutMs(int)
DEFAULT_SHOW_TIMEOUT_MS
show_rewind_button - Whether the rewind button is shown.
setShowRewindButton(boolean)
show_fastforward_button - Whether the fast forward button is shown.
setShowFastForwardButton(boolean)
show_previous_button - Whether the previous button is shown.
setShowPreviousButton(boolean)
show_next_button - Whether the next button is shown.
setShowNextButton(boolean)
rewind_increment - The duration of the rewind applied when the user taps the
rewind button, in milliseconds. Use zero to disable the rewind button.
setControlDispatcher(ControlDispatcher)
DefaultControlDispatcher.DEFAULT_REWIND_MS
fastforward_increment - Like rewind_increment, but for fast forward.
setControlDispatcher(ControlDispatcher)
DefaultControlDispatcher.DEFAULT_FAST_FORWARD_MS
repeat_toggle_modes - A flagged enumeration value specifying which repeat
mode toggle options are enabled. Valid values are: none, one, all,
or one|all.
setRepeatToggleModes(int)
DEFAULT_REPEAT_TOGGLE_MODES
show_shuffle_button - Whether the shuffle button is shown.
setShowShuffleButton(boolean)
time_bar_min_update_interval - Specifies the minimum interval between time
bar position updates.
setTimeBarMinUpdateInterval(int)
DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS
controller_layout_id - Specifies the id of the layout to be inflated. See
below for more details.
R.layout.exo_player_control_view
DefaultTimeBar can also be set on a
PlayerControlView, and will be propagated to the inflated DefaultTimeBar unless the
layout is overridden to specify a custom exo_progress (see below).
exo_controls_play - The play icon.
exo_controls_pause - The pause icon.
exo_controls_rewind - The rewind icon.
exo_controls_fastforward - The fast forward icon.
exo_controls_previous - The previous icon.
exo_controls_next - The next icon.
exo_controls_repeat_off - The repeat icon for Player.REPEAT_MODE_OFF.
exo_controls_repeat_one - The repeat icon for Player.REPEAT_MODE_ONE.
exo_controls_repeat_all - The repeat icon for Player.REPEAT_MODE_ALL.
exo_controls_shuffle_off - The shuffle icon when shuffling is disabled.
exo_controls_shuffle_on - The shuffle icon when shuffling is enabled.
exo_controls_vr - The VR icon.
exo_player_control_view.xml layout files in your
application res/layout* directories. These layouts will override the one provided by the
ExoPlayer library, and will be inflated for use by PlayerControlView. The view identifies and
binds its children by looking for the following ids:
exo_play - The play button.
View
exo_pause - The pause button.
View
exo_rew - The rewind button.
View
exo_ffwd - The fast forward button.
View
exo_prev - The previous button.
View
exo_next - The next button.
View
exo_repeat_toggle - The repeat toggle button.
ImageView
exo_controls_repeat_off, exo_controls_repeat_one and
exo_controls_repeat_all. See the section above for information on overriding these
drawables.
exo_shuffle - The shuffle button.
ImageView
exo_controls_shuffle_off and exo_controls_shuffle_on. See the section above
for information on overriding these drawables.
exo_vr - The VR mode button.
View
exo_position - Text view displaying the current playback position.
TextView
exo_duration - Text view displaying the current media duration.
TextView
exo_progress_placeholder - A placeholder that's replaced with the inflated
DefaultTimeBar. Ignored if an exo_progress view exists.
View
exo_progress - Time bar that's updated during playback and allows seeking.
DefaultTimeBar attributes set on the PlayerControlView will not be automatically
propagated through to this instance. If a view exists with this id, any
exo_progress_placeholder view will be ignored.
TimeBar
All child views are optional and so can be omitted if not required, however where defined they must be of the expected type.
exo_player_control_view.xml is useful to customize the layout of
PlayerControlView throughout your application. It's also possible to customize the layout for a
single instance in a layout file. This is achieved by setting the controller_layout_id
attribute on a PlayerControlView. This will cause the specified layout to be inflated instead of
exo_player_control_view.xml for only the instance on which the attribute is set.| Modifier and Type | Class | Description |
|---|---|---|
static interface |
PlayerControlView.ProgressUpdateListener |
Listener to be notified when progress has been updated.
|
static interface |
PlayerControlView.VisibilityListener |
Listener to be notified about changes of the visibility of the UI control.
|
FrameLayout.LayoutParamsView.AccessibilityDelegate, View.BaseSavedState, View.DragShadowBuilder, View.MeasureSpec, View.OnApplyWindowInsetsListener, View.OnAttachStateChangeListener, View.OnCapturedPointerListener, View.OnClickListener, View.OnContextClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnScrollChangeListener, View.OnSystemUiVisibilityChangeListener, View.OnTouchListener, View.OnUnhandledKeyEventListenerViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener| Modifier and Type | Field | Description |
|---|---|---|
static int |
DEFAULT_REPEAT_TOGGLE_MODES |
The default repeat toggle modes.
|
static int |
DEFAULT_SHOW_TIMEOUT_MS |
The default show timeout, in milliseconds.
|
static int |
DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS |
The default minimum interval between time bar position updates.
|
static int |
MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR |
The maximum number of windows that can be shown in a multi-window time bar.
|
ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, ZCLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE| Constructor | Description |
|---|---|
PlayerControlView(Context context) |
|
PlayerControlView(Context context,
AttributeSet attrs) |
|
PlayerControlView(Context context,
AttributeSet attrs,
int defStyleAttr) |
|
PlayerControlView(Context context,
AttributeSet attrs,
int defStyleAttr,
AttributeSet playbackAttrs) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addVisibilityListener(PlayerControlView.VisibilityListener listener) |
|
boolean |
dispatchKeyEvent(KeyEvent event) |
|
boolean |
dispatchMediaKeyEvent(KeyEvent event) |
Called to process media key events.
|
boolean |
dispatchTouchEvent(MotionEvent ev) |
|
Player |
getPlayer() |
Returns the
Player currently being controlled by this view, or null if no player is
set. |
int |
getRepeatToggleModes() |
Returns which repeat toggle modes are enabled.
|
boolean |
getShowShuffleButton() |
Returns whether the shuffle button is shown.
|
int |
getShowTimeoutMs() |
Returns the playback controls timeout.
|
boolean |
getShowVrButton() |
Returns whether the VR button is shown.
|
void |
hide() |
Hides the controller.
|
boolean |
isVisible() |
Returns whether the controller is currently visible.
|
void |
onAttachedToWindow() |
|
void |
onDetachedFromWindow() |
|
void |
removeVisibilityListener(PlayerControlView.VisibilityListener listener) |
Removes a
PlayerControlView.VisibilityListener. |
void |
setControlDispatcher(ControlDispatcher controlDispatcher) |
Sets the
ControlDispatcher. |
void |
setExtraAdGroupMarkers(long[] extraAdGroupTimesMs,
boolean[] extraPlayedAdGroups) |
Sets the millisecond positions of extra ad markers relative to the start of the window (or
timeline, if in multi-window mode) and whether each extra ad has been played or not.
|
void |
setFastForwardIncrementMs(int fastForwardMs) |
Deprecated.
|
void |
setPlaybackPreparer(PlaybackPreparer playbackPreparer) |
Deprecated.
Use
setControlDispatcher(ControlDispatcher) instead. |
void |
setPlayer(Player player) |
Sets the
Player to control. |
void |
setProgressUpdateListener(PlayerControlView.ProgressUpdateListener listener) |
Sets the
PlayerControlView.ProgressUpdateListener. |
void |
setRepeatToggleModes(int repeatToggleModes) |
Sets which repeat toggle modes are enabled.
|
void |
setRewindIncrementMs(int rewindMs) |
Deprecated.
|
void |
setShowFastForwardButton(boolean showFastForwardButton) |
Sets whether the fast forward button is shown.
|
void |
setShowMultiWindowTimeBar(boolean showMultiWindowTimeBar) |
Sets whether the time bar should show all windows, as opposed to just the current one.
|
void |
setShowNextButton(boolean showNextButton) |
Sets whether the next button is shown.
|
void |
setShowPreviousButton(boolean showPreviousButton) |
Sets whether the previous button is shown.
|
void |
setShowRewindButton(boolean showRewindButton) |
Sets whether the rewind button is shown.
|
void |
setShowShuffleButton(boolean showShuffleButton) |
Sets whether the shuffle button is shown.
|
void |
setShowTimeoutMs(int showTimeoutMs) |
Sets the playback controls timeout.
|
void |
setShowVrButton(boolean showVrButton) |
Sets whether the VR button is shown.
|
void |
setTimeBarMinUpdateInterval(int minUpdateIntervalMs) |
Sets the minimum interval between time bar position updates.
|
void |
setVrButtonListener(View.OnClickListener onClickListener) |
Sets listener for the VR button.
|
void |
show() |
Shows the playback controls.
|
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDrawaddChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayoutcanResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayoutpublic static final int DEFAULT_SHOW_TIMEOUT_MS
@RepeatToggleModes public static final int DEFAULT_REPEAT_TOGGLE_MODES
public static final int DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS
public static final int MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR
public PlayerControlView(Context context)
public PlayerControlView(Context context, @Nullable AttributeSet attrs)
public PlayerControlView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)
public PlayerControlView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, @Nullable AttributeSet playbackAttrs)
@Nullable public Player getPlayer()
Player currently being controlled by this view, or null if no player is
set.public void setPlayer(@Nullable
Player player)
Player to control.player - The Player to control, or null to detach the current player. Only
players which are accessed on the main thread are supported (
player.getApplicationLooper() == Looper.getMainLooper()).public void setShowMultiWindowTimeBar(boolean showMultiWindowTimeBar)
MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR windows the time bar will fall back to showing a single
window.showMultiWindowTimeBar - Whether the time bar should show all windows.public void setExtraAdGroupMarkers(@Nullable
long[] extraAdGroupTimesMs,
@Nullable
boolean[] extraPlayedAdGroups)
extraAdGroupTimesMs - The millisecond timestamps of the extra ad markers to show, or
null to show no extra ad markers.extraPlayedAdGroups - Whether each ad has been played. Must be the same length as
extraAdGroupTimesMs, or null if extraAdGroupTimesMs is null.public void addVisibilityListener(PlayerControlView.VisibilityListener listener)
listener - The listener to be notified about visibility changes.public void removeVisibilityListener(PlayerControlView.VisibilityListener listener)
PlayerControlView.VisibilityListener.listener - The listener to be removed.public void setProgressUpdateListener(@Nullable
PlayerControlView.ProgressUpdateListener listener)
PlayerControlView.ProgressUpdateListener.listener - The listener to be notified about when progress is updated.@Deprecated public void setPlaybackPreparer(@Nullable PlaybackPreparer playbackPreparer)
setControlDispatcher(ControlDispatcher) instead. The view calls ControlDispatcher.dispatchPrepare(Player) instead of PlaybackPreparer.preparePlayback(). The DefaultControlDispatcher that the view
uses by default, calls Player.prepare(). If you wish to customize this behaviour,
you can provide a custom implementation of ControlDispatcher.dispatchPrepare(Player).public void setControlDispatcher(ControlDispatcher controlDispatcher)
ControlDispatcher.controlDispatcher - The ControlDispatcher.public void setShowRewindButton(boolean showRewindButton)
showRewindButton - Whether the rewind button is shown.public void setShowFastForwardButton(boolean showFastForwardButton)
showFastForwardButton - Whether the fast forward button is shown.public void setShowPreviousButton(boolean showPreviousButton)
showPreviousButton - Whether the previous button is shown.public void setShowNextButton(boolean showNextButton)
showNextButton - Whether the next button is shown.@Deprecated public void setRewindIncrementMs(int rewindMs)
@Deprecated public void setFastForwardIncrementMs(int fastForwardMs)
public int getShowTimeoutMs()
public void setShowTimeoutMs(int showTimeoutMs)
showTimeoutMs - The duration in milliseconds. A non-positive value will cause the controls
to remain visible indefinitely.@RepeatToggleModes public int getRepeatToggleModes()
RepeatModeUtil.RepeatToggleModes.public void setRepeatToggleModes(@RepeatToggleModes int repeatToggleModes)
repeatToggleModes - A set of RepeatModeUtil.RepeatToggleModes.public boolean getShowShuffleButton()
public void setShowShuffleButton(boolean showShuffleButton)
showShuffleButton - Whether the shuffle button is shown.public boolean getShowVrButton()
public void setShowVrButton(boolean showVrButton)
showVrButton - Whether the VR button is shown.public void setVrButtonListener(@Nullable
View.OnClickListener onClickListener)
onClickListener - Listener for the VR button, or null to clear the listener.public void setTimeBarMinUpdateInterval(int minUpdateIntervalMs)
Note that smaller intervals, e.g. 33ms, will result in a smooth movement but will use more CPU resources while the time bar is visible, whereas larger intervals, e.g. 200ms, will result in a step-wise update with less CPU usage.
minUpdateIntervalMs - The minimum interval between time bar position updates, in
milliseconds.public void show()
getShowTimeoutMs() is positive then the controls will
be automatically hidden after this duration of time has elapsed without user input.public void hide()
public boolean isVisible()
public void onAttachedToWindow()
onAttachedToWindow in class ViewGrouppublic void onDetachedFromWindow()
onDetachedFromWindow in class ViewGrouppublic final boolean dispatchTouchEvent(MotionEvent ev)
dispatchTouchEvent in class ViewGrouppublic boolean dispatchKeyEvent(KeyEvent event)
dispatchKeyEvent in class ViewGroup