Drawable.Callback, AccessibilityEventSource, KeyEvent.Callback, ViewManager, ViewParentpublic class StyledPlayerControlView extends FrameLayout
Player instances.
A StyledPlayerControlView 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)
show_subtitle_button - Whether the subtitle button is shown.
setShowSubtitleButton(boolean)
animation_enabled - Whether an animation is used to show and hide the
playback controls.
setAnimationEnabled(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_styled_player_control_view
DefaultTimeBar can also be set on a
StyledPlayerControlView, and will be propagated to the inflated DefaultTimeBar
unless the layout is overridden to specify a custom exo_progress (see below).
exo_styled_controls_play - The play icon.
exo_styled_controls_pause - The pause icon.
exo_styled_controls_rewind - The background of rewind icon.
exo_styled_controls_fastforward - The background of fast forward icon.
exo_styled_controls_previous - The previous icon.
exo_styled_controls_next - The next icon.
exo_styled_controls_repeat_off - The repeat icon for Player.REPEAT_MODE_OFF.
exo_styled_controls_repeat_one - The repeat icon for Player.REPEAT_MODE_ONE.
exo_styled_controls_repeat_all - The repeat icon for Player.REPEAT_MODE_ALL.
exo_styled_controls_shuffle_off - The shuffle icon when shuffling is
disabled.
exo_styled_controls_shuffle_on - The shuffle icon when shuffling is enabled.
exo_styled_controls_vr - The VR icon.
exo_styled_player_control_view.xml layout files in your
application res/layout* directories. But, in this case, you need to be careful since the
default animation implementation expects certain relative positions between children. See also Specifying a custom layout file.
The layout files in your res/layout* will override the one provided by the ExoPlayer
library, and will be inflated for use by StyledPlayerControlView. The view identifies and binds
its children by looking for the following ids:
exo_play_pause - The play and pause button.
ImageView
exo_rew - The rewind button.
View
exo_rew_with_amount - The rewind button with rewind amount.
TextView
exo_rew exists. Otherwise, it works as the
rewind button.
exo_ffwd - The fast forward button.
View
exo_ffwd_with_amount - The fast forward button with fast forward amount.
TextView
exo_ffwd exists. Otherwise, it works
as the fast forward button.
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_subtitle - The subtitle button.
ImageView
exo_fullscreen - The fullscreen button.
ImageView
exo_minimal_fullscreen - The fullscreen button in minimal mode.
ImageView
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 StyledPlayerControlView 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_styled_player_control_view.xml is useful to customize the layout of
StyledPlayerControlView 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 StyledPlayerControlView. This will cause the specified
layout to be inflated instead of exo_styled_player_control_view.xml for only the instance
on which the attribute is set.
You need to be careful when you set the controller_layout_id, because the default
animation implementation expects certain relative positions between children.
| Modifier and Type | Class | Description |
|---|---|---|
static interface |
StyledPlayerControlView.OnFullScreenModeChangedListener |
Listener to be invoked to inform the fullscreen mode is changed.
|
static interface |
StyledPlayerControlView.ProgressUpdateListener |
Listener to be notified when progress has been updated.
|
static interface |
StyledPlayerControlView.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 |
|---|---|
StyledPlayerControlView(Context context) |
|
StyledPlayerControlView(Context context,
AttributeSet attrs) |
|
StyledPlayerControlView(Context context,
AttributeSet attrs,
int defStyleAttr) |
|
StyledPlayerControlView(Context context,
AttributeSet attrs,
int defStyleAttr,
AttributeSet playbackAttrs) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addVisibilityListener(StyledPlayerControlView.VisibilityListener listener) |
|
boolean |
dispatchKeyEvent(KeyEvent event) |
|
boolean |
dispatchMediaKeyEvent(KeyEvent event) |
Called to process media key events.
|
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.
|
boolean |
getShowSubtitleButton() |
Returns whether the subtitle button is shown.
|
int |
getShowTimeoutMs() |
Returns the playback controls timeout.
|
boolean |
getShowVrButton() |
Returns whether the VR button is shown.
|
void |
hide() |
Hides the controller.
|
void |
hideImmediately() |
Hides the controller without any animation.
|
boolean |
isAnimationEnabled() |
Returns whether an animation is used to show and hide the playback controls.
|
boolean |
isFullyVisible() |
Returns whether the controller is fully visible, which means all UI controls are visible.
|
boolean |
isVisible() |
Returns whether the controller is currently visible.
|
void |
onAttachedToWindow() |
|
void |
onDetachedFromWindow() |
|
protected void |
onLayout(boolean changed,
int left,
int top,
int right,
int bottom) |
|
void |
removeVisibilityListener(StyledPlayerControlView.VisibilityListener listener) |
Removes a
StyledPlayerControlView.VisibilityListener. |
void |
setAnimationEnabled(boolean animationEnabled) |
Sets whether an animation is used to show and hide the playback controls.
|
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 |
setOnFullScreenModeChangedListener(StyledPlayerControlView.OnFullScreenModeChangedListener listener) |
Sets a listener to be called when the fullscreen mode should be changed.
|
void |
setPlaybackPreparer(PlaybackPreparer playbackPreparer) |
Deprecated.
Use
setControlDispatcher(ControlDispatcher) instead. |
void |
setPlayer(Player player) |
Sets the
Player to control. |
void |
setProgressUpdateListener(StyledPlayerControlView.ProgressUpdateListener listener) |
|
void |
setRepeatToggleModes(int repeatToggleModes) |
Sets which repeat toggle modes are enabled.
|
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 |
setShowSubtitleButton(boolean showSubtitleButton) |
Sets whether the subtitle 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, 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, dispatchTouchEvent, 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 StyledPlayerControlView(Context context)
public StyledPlayerControlView(Context context, @Nullable AttributeSet attrs)
public StyledPlayerControlView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)
public StyledPlayerControlView(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(StyledPlayerControlView.VisibilityListener listener)
listener - The listener to be notified about visibility changes.public void removeVisibilityListener(StyledPlayerControlView.VisibilityListener listener)
StyledPlayerControlView.VisibilityListener.listener - The listener to be removed.public void setProgressUpdateListener(@Nullable
StyledPlayerControlView.ProgressUpdateListener listener)
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.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 getShowSubtitleButton()
public void setShowSubtitleButton(boolean showSubtitleButton)
showSubtitleButton - Whether the subtitle 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 setAnimationEnabled(boolean animationEnabled)
animationEnabled - Whether an animation is applied to show and hide playback controls.public boolean isAnimationEnabled()
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 setOnFullScreenModeChangedListener(@Nullable
StyledPlayerControlView.OnFullScreenModeChangedListener listener)
listener - The listener to be called. A value of null removes any existing
listener and hides the fullscreen button.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 void hideImmediately()
public boolean isFullyVisible()
public boolean isVisible()
public void onAttachedToWindow()
onAttachedToWindow in class ViewGrouppublic void onDetachedFromWindow()
onDetachedFromWindow in class ViewGrouppublic boolean dispatchKeyEvent(KeyEvent event)
dispatchKeyEvent in class ViewGrouppublic boolean dispatchMediaKeyEvent(KeyEvent event)
KeyEvent can be passed but only media key
events will be handled.event - A key event.protected void onLayout(boolean changed,
int left,
int top,
int right,
int bottom)
onLayout in class FrameLayout