Drawable.Callback, AccessibilityEventSource, KeyEvent.Callback, ViewManager, ViewParent, AdsLoader.AdViewProviderpublic class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider
Player media playbacks. It displays video, subtitles and album art
during playback, and displays playback controls using a PlayerControlView.
A PlayerView 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.
use_artwork - Whether artwork is used if available in audio streams.
setUseArtwork(boolean)
true
default_artwork - Default artwork to use if no artwork available in audio
streams.
setDefaultArtwork(Drawable)
null
use_controller - Whether the playback controls can be shown.
setUseController(boolean)
true
hide_on_touch - Whether the playback controls are hidden by touch events.
setControllerHideOnTouch(boolean)
true
auto_show - Whether the playback controls are automatically shown when
playback starts, pauses, ends, or fails. If set to false, the playback controls can be
manually operated with showController() and hideController().
setControllerAutoShow(boolean)
true
hide_during_ads - Whether the playback controls are hidden during ads.
Controls are always shown during ads if they are enabled and the player is paused.
setControllerHideDuringAds(boolean)
true
show_buffering - Whether the buffering spinner is displayed when the player
is buffering. Valid values are never, when_playing and always.
setShowBuffering(int)
never
resize_mode - Controls how video and album art is resized within the view.
Valid values are fit, fixed_width, fixed_height, fill and
zoom.
setResizeMode(int)
fit
surface_type - The type of surface view used for video playbacks. Valid
values are surface_view, texture_view, spherical_gl_surface_view,
video_decoder_gl_surface_view and none. Using none is recommended
for audio only applications, since creating the surface can be expensive. Using
surface_view is recommended for video applications. Note, TextureView can only be used in
a hardware accelerated window. When rendered in software, TextureView will draw nothing.
surface_view
use_sensor_rotation - Whether to use the orientation sensor for rotation
during spherical playbacks (if available).
setUseSensorRotation(boolean)
true
shutter_background_color - The background color of the exo_shutter
view.
setShutterBackgroundColor(int)
unset
keep_content_on_player_reset - Whether the currently displayed video frame
or media artwork is kept visible when the player is reset.
setKeepContentOnPlayerReset(boolean)
false
player_layout_id - Specifies the id of the layout to be inflated. See below
for more details.
R.layout.exo_player_view
controller_layout_id - Specifies the id of the layout resource to be
inflated by the child PlayerControlView. See below for more details.
R.layout.exo_player_control_view
PlayerControlView and DefaultTimeBar can
also be set on a PlayerView, and will be propagated to the inflated PlayerControlView unless the layout is overridden to specify a custom
exo_controller (see below).
PlayerControlView (with its default layout file) can be overridden
by drawables with the same names defined in your application. See the PlayerControlView
documentation for a list of drawables that can be overridden.
exo_player_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 PlayerView. The view identifies and binds its children by looking for the
following ids:
exo_content_frame - A frame whose aspect ratio is resized based on the video
or album art of the media being played, and the configured resize_mode. The video
surface view is inflated into this frame as its first child.
AspectRatioFrameLayout
exo_shutter - A view that's made visible when video should be hidden. This
view is typically an opaque view that covers the video surface, thereby obscuring it when
visible. Obscuring the surface in this way also helps to prevent flicker at the start of
playback when surface_type="surface_view".
View
exo_buffering - A view that's made visible when the player is buffering.
This view typically displays a buffering spinner or animation.
View
exo_subtitles - Displays subtitles.
SubtitleView
exo_artwork - Displays album art.
ImageView
exo_error_message - Displays an error message to the user if playback fails.
TextView
exo_controller_placeholder - A placeholder that's replaced with the inflated
PlayerControlView. Ignored if an exo_controller view exists.
View
exo_controller - An already inflated PlayerControlView. Allows use
of a custom extension of PlayerControlView. PlayerControlView and DefaultTimeBar attributes set on the PlayerView will not be automatically propagated
through to this instance. If a view exists with this id, any
exo_controller_placeholder view will be ignored.
PlayerControlView
exo_ad_overlay - A FrameLayout positioned on top of the player which
is used to show ad UI (if applicable).
FrameLayout
exo_overlay - A FrameLayout positioned on top of the player which
the app can access via getOverlayFrameLayout(), provided for convenience.
FrameLayout
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_view.xml is useful to customize the layout of PlayerView
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 player_layout_id attribute on a
PlayerView. This will cause the specified layout to be inflated instead of
exo_player_view.xml for only the instance on which the attribute is set.| Modifier and Type | Class | Description |
|---|---|---|
static interface |
PlayerView.ShowBuffering |
Determines when the buffering view is shown.
|
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 |
SHOW_BUFFERING_ALWAYS |
The buffering view is always shown when the player is in the
buffering state. |
static int |
SHOW_BUFFERING_NEVER |
The buffering view is never shown.
|
static int |
SHOW_BUFFERING_WHEN_PLAYING |
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 |
|---|---|
PlayerView(Context context) |
|
PlayerView(Context context,
AttributeSet attrs) |
|
PlayerView(Context context,
AttributeSet attrs,
int defStyleAttr) |
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
dispatchKeyEvent(KeyEvent event) |
|
boolean |
dispatchMediaKeyEvent(KeyEvent event) |
Called to process media key events.
|
List<AdsLoader.OverlayInfo> |
getAdOverlayInfos() |
Returns a list of
AdsLoader.OverlayInfo instances describing views that are on top of the ad
view group, but that are essential for controlling playback and should be excluded from ad
viewability measurements by the AdsLoader (if it supports this). |
ViewGroup |
getAdViewGroup() |
Returns the
ViewGroup on top of the player that will show any ad UI, or null
if playing audio-only ads. |
boolean |
getControllerAutoShow() |
Returns whether the playback controls are automatically shown when playback starts, pauses,
ends, or fails.
|
boolean |
getControllerHideOnTouch() |
Returns whether the playback controls are hidden by touch events.
|
int |
getControllerShowTimeoutMs() |
Returns the playback controls timeout.
|
Drawable |
getDefaultArtwork() |
Returns the default artwork to display.
|
FrameLayout |
getOverlayFrameLayout() |
Gets the overlay
FrameLayout, which can be populated with UI elements to show on top of
the player. |
Player |
getPlayer() |
Returns the player currently set on this view, or null if no player is set.
|
int |
getResizeMode() |
Returns the
AspectRatioFrameLayout.ResizeMode. |
SubtitleView |
getSubtitleView() |
Gets the
SubtitleView. |
boolean |
getUseArtwork() |
Returns whether artwork is displayed if present in the media.
|
boolean |
getUseController() |
Returns whether the playback controls can be shown.
|
View |
getVideoSurfaceView() |
Gets the view onto which video is rendered.
|
void |
hideController() |
Hides the playback controls.
|
boolean |
isControllerVisible() |
Returns whether the controller is currently visible.
|
protected void |
onContentAspectRatioChanged(float contentAspectRatio,
AspectRatioFrameLayout contentFrame,
View contentView) |
Called when there's a change in the aspect ratio of the content being displayed.
|
void |
onPause() |
Should be called when the player is no longer visible to the user and if
surface_type
is spherical_gl_surface_view. |
void |
onResume() |
Should be called when the player is visible to the user and if
surface_type is
spherical_gl_surface_view. |
boolean |
onTouchEvent(MotionEvent event) |
|
boolean |
onTrackballEvent(MotionEvent ev) |
|
boolean |
performClick() |
|
void |
setAspectRatioListener(AspectRatioFrameLayout.AspectRatioListener listener) |
|
void |
setControlDispatcher(ControlDispatcher controlDispatcher) |
Sets the
ControlDispatcher. |
void |
setControllerAutoShow(boolean controllerAutoShow) |
Sets whether the playback controls are automatically shown when playback starts, pauses, ends,
or fails.
|
void |
setControllerHideDuringAds(boolean controllerHideDuringAds) |
Sets whether the playback controls are hidden when ads are playing.
|
void |
setControllerHideOnTouch(boolean controllerHideOnTouch) |
Sets whether the playback controls are hidden by touch events.
|
void |
setControllerShowTimeoutMs(int controllerShowTimeoutMs) |
Sets the playback controls timeout.
|
void |
setControllerVisibilityListener(PlayerControlView.VisibilityListener listener) |
Set the
PlayerControlView.VisibilityListener. |
void |
setCustomErrorMessage(CharSequence message) |
Sets a custom error message to be displayed by the view.
|
void |
setDefaultArtwork(Drawable defaultArtwork) |
Sets the default artwork to display if
useArtwork is true and no artwork is
present in the media. |
void |
setErrorMessageProvider(ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider) |
Sets the optional
ErrorMessageProvider. |
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 |
setKeepContentOnPlayerReset(boolean keepContentOnPlayerReset) |
Sets whether the currently displayed video frame or media artwork is kept visible when the
player is reset.
|
void |
setPlaybackPreparer(PlaybackPreparer playbackPreparer) |
Deprecated.
Use
setControlDispatcher(ControlDispatcher) instead. |
void |
setPlayer(Player player) |
Set the
Player to use. |
void |
setRepeatToggleModes(int repeatToggleModes) |
Sets which repeat toggle modes are enabled.
|
void |
setResizeMode(int resizeMode) |
Sets the
AspectRatioFrameLayout.ResizeMode. |
void |
setRewindIncrementMs(int rewindMs) |
Deprecated.
|
void |
setShowBuffering(int showBuffering) |
Sets whether a buffering spinner is displayed when the player is in the buffering state.
|
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 |
setShutterBackgroundColor(int color) |
Sets the background color of the
exo_shutter view. |
void |
setUseArtwork(boolean useArtwork) |
Sets whether artwork is displayed if present in the media.
|
void |
setUseController(boolean useController) |
Sets whether the playback controls can be shown.
|
void |
setUseSensorRotation(boolean useSensorRotation) |
Sets whether to use the orientation sensor for rotation during spherical playbacks (if
available)
|
void |
setVisibility(int visibility) |
|
void |
showController() |
Shows the playback controls.
|
static void |
switchTargetView(Player player,
PlayerView oldPlayerView,
PlayerView newPlayerView) |
Switches the view targeted by a given
Player. |
getAdOverlayViewscheckLayoutParams, 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, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, 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, 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, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, 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 SHOW_BUFFERING_NEVER
public static final int SHOW_BUFFERING_WHEN_PLAYING
public static final int SHOW_BUFFERING_ALWAYS
buffering state.public PlayerView(Context context)
public PlayerView(Context context, @Nullable AttributeSet attrs)
public PlayerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)
public static void switchTargetView(Player player, @Nullable PlayerView oldPlayerView, @Nullable PlayerView newPlayerView)
Player.player - The player whose target view is being switched.oldPlayerView - The old view to detach from the player.newPlayerView - The new view to attach to the player.@Nullable public Player getPlayer()
public void setPlayer(@Nullable
Player player)
Player to use.
To transition a Player from targeting one view to another, it's recommended to use
switchTargetView(Player, PlayerView, PlayerView) rather than this method. If you do
wish to use this method directly, be sure to attach the player to the new view before
calling setPlayer(null) to detach it from the old one. This ordering is significantly
more efficient and may allow for more seamless transitions.
player - The Player to use, or null to detach the current player. Only
players which are accessed on the main thread are supported (
player.getApplicationLooper() == Looper.getMainLooper()).public void setVisibility(int visibility)
setVisibility in class Viewpublic void setResizeMode(@ResizeMode int resizeMode)
AspectRatioFrameLayout.ResizeMode.resizeMode - The AspectRatioFrameLayout.ResizeMode.@ResizeMode public int getResizeMode()
AspectRatioFrameLayout.ResizeMode.public boolean getUseArtwork()
public void setUseArtwork(boolean useArtwork)
useArtwork - Whether artwork is displayed.@Nullable public Drawable getDefaultArtwork()
public void setDefaultArtwork(@Nullable
Drawable defaultArtwork)
useArtwork is true and no artwork is
present in the media.defaultArtwork - the default artwork to displaypublic boolean getUseController()
public void setUseController(boolean useController)
false the playback controls
are never visible and are disconnected from the player.useController - Whether the playback controls can be shown.public void setShutterBackgroundColor(int color)
exo_shutter view.color - The background color.public void setKeepContentOnPlayerReset(boolean keepContentOnPlayerReset)
setPlayer(Player).
If enabled, the currently displayed video frame or media artwork will be kept visible until the player set on the view has been successfully prepared with new media and loaded enough of it to have determined the available tracks. Hence enabling this option allows transitioning from playing one piece of media to another, or from using one player instance to another, without clearing the view's content.
If disabled, the currently displayed video frame or media artwork will be hidden as soon as
the player is reset. Note that the video frame is hidden by making exo_shutter visible.
Hence the video frame will not be hidden if using a custom layout that omits this view.
keepContentOnPlayerReset - Whether the currently displayed video frame or media artwork is
kept visible when the player is reset.public void setUseSensorRotation(boolean useSensorRotation)
useSensorRotation - Whether to use the orientation sensor for rotation during spherical
playbacks.public void setShowBuffering(@ShowBuffering int showBuffering)
showBuffering - The mode that defines when the buffering spinner is displayed. One of
SHOW_BUFFERING_NEVER, SHOW_BUFFERING_WHEN_PLAYING and SHOW_BUFFERING_ALWAYS.public void setErrorMessageProvider(@Nullable
ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider)
ErrorMessageProvider.errorMessageProvider - The error message provider.public void setCustomErrorMessage(@Nullable
CharSequence message)
null to this method.message - The message to display, or null to clear a previously set message.public boolean dispatchKeyEvent(KeyEvent event)
dispatchKeyEvent in class ViewGrouppublic boolean dispatchMediaKeyEvent(KeyEvent event)
KeyEvent can be passed but only media key
events will be handled. Does nothing if playback controls are disabled.event - A key event.public boolean isControllerVisible()
public void showController()
The playback controls are automatically hidden during playback after {getControllerShowTimeoutMs()}. They are shown indefinitely when playback has not started yet,
is paused, has ended or failed.
public void hideController()
public int getControllerShowTimeoutMs()
public void setControllerShowTimeoutMs(int controllerShowTimeoutMs)
controllerShowTimeoutMs - The timeout in milliseconds. A non-positive value will cause the
controller to remain visible indefinitely.public boolean getControllerHideOnTouch()
public void setControllerHideOnTouch(boolean controllerHideOnTouch)
controllerHideOnTouch - Whether the playback controls are hidden by touch events.public boolean getControllerAutoShow()
showController() and hideController().public void setControllerAutoShow(boolean controllerAutoShow)
showController() and hideController().controllerAutoShow - Whether the playback controls are allowed to show automatically.public void setControllerHideDuringAds(boolean controllerHideDuringAds)
controllerHideDuringAds - Whether the playback controls are hidden when ads are playing.public void setControllerVisibilityListener(@Nullable
PlayerControlView.VisibilityListener listener)
PlayerControlView.VisibilityListener.listener - The listener to be notified about visibility changes, or null to remove the
current listener.@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 void setRepeatToggleModes(@RepeatToggleModes int repeatToggleModes)
repeatToggleModes - A set of RepeatModeUtil.RepeatToggleModes.public void setShowShuffleButton(boolean showShuffleButton)
showShuffleButton - Whether the shuffle button is shown.public void setShowMultiWindowTimeBar(boolean showMultiWindowTimeBar)
showMultiWindowTimeBar - Whether to 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, or null to show no extra ad
markers.public void setAspectRatioListener(@Nullable
AspectRatioFrameLayout.AspectRatioListener listener)
listener - The listener to be notified about aspect ratios changes of the video content or
the content frame.@Nullable public View getVideoSurfaceView()
SurfaceView by default, or if the surface_type attribute is set to
surface_view.
TextureView if surface_type is texture_view.
SphericalGLSurfaceView if surface_type is
spherical_gl_surface_view.
VideoDecoderGLSurfaceView if surface_type is
video_decoder_gl_surface_view.
null if surface_type is none.
SurfaceView, TextureView, SphericalGLSurfaceView, VideoDecoderGLSurfaceView or null.@Nullable public FrameLayout getOverlayFrameLayout()
FrameLayout, which can be populated with UI elements to show on top of
the player.FrameLayout, or null if the layout has been customized and
the overlay is not present.@Nullable public SubtitleView getSubtitleView()
SubtitleView.SubtitleView, or null if the layout has been customized and the
subtitle view is not present.public boolean onTouchEvent(MotionEvent event)
onTouchEvent in class Viewpublic boolean performClick()
performClick in class Viewpublic boolean onTrackballEvent(MotionEvent ev)
onTrackballEvent in class Viewpublic void onResume()
surface_type is
spherical_gl_surface_view. It is the counterpart to onPause().
This method should typically be called in Activity.onStart(), or
Activity.onResume() for API versions <= 23.
public void onPause()
surface_type
is spherical_gl_surface_view. It is the counterpart to onResume().
This method should typically be called in Activity.onStop(), or
Activity.onPause() for API versions <= 23.
protected void onContentAspectRatioChanged(float contentAspectRatio,
@Nullable
AspectRatioFrameLayout contentFrame,
@Nullable
View contentView)
SphericalGLSurfaceView in which case the frame's aspect ratio is
cleared.contentAspectRatio - The aspect ratio of the content.contentFrame - The content frame, or null.contentView - The view that holds the content being displayed, or null.public ViewGroup getAdViewGroup()
AdsLoader.AdViewProviderViewGroup on top of the player that will show any ad UI, or null
if playing audio-only ads. Any views on top of the returned view group must be described by
OverlayInfos returned by AdsLoader.AdViewProvider.getAdOverlayInfos(), for accurate
viewability measurement.getAdViewGroup in interface AdsLoader.AdViewProviderpublic List<AdsLoader.OverlayInfo> getAdOverlayInfos()
AdsLoader.AdViewProviderAdsLoader.OverlayInfo instances describing views that are on top of the ad
view group, but that are essential for controlling playback and should be excluded from ad
viewability measurements by the AdsLoader (if it supports this).
Each view must be either a fully transparent overlay (for capturing touch events), or a small piece of transient UI that is essential to the user experience of playback (such as a button to pause/resume playback or a transient full-screen or cast button). For more information see the documentation for your ads loader.
getAdOverlayInfos in interface AdsLoader.AdViewProvider