com.brightcove.player.view

## Class BaseVideoView

- java.lang.Object
- - android.view.View
  - - android.view.ViewGroup
    - - android.widget.FrameLayout
      - - com.brightcove.player.view.BaseVideoView

- All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent, android.widget.MediaController.MediaPlayerControl, Component
  Direct Known Subclasses:
    BrightcoveTextureVideoView, BrightcoveVideoView

      @Emits(events={"didChangeList","didSelectSource","error","pause","play","prebufferNextVideo","readyToPlay","seekTo","selectSource","setSource","setVideo","stop","willChangeVideo","on360FrameAvailable","projectionFormatChanged"})
       @ListensFor(events={"activityCreated","activitySaveInstanceState","activityStarted","adProgress","bufferedUpdate","captionsLanguages","completed","didLoadClosedCaptions","didPause","didPlay","didSeekTo","didSetSource","didSetVideo","didStop","hideSeekControls","progress","seekTo","showSeekControls","sourceNotPlayable","videoDurationChanged","willChangeVideo","willInterruptContent","willResumeContent"})
      public abstract class BaseVideoView
      extends android.widget.FrameLayout
      implements Component, android.widget.MediaController.MediaPlayerControl

  BaseVideoView provides the base functionality for BrightcoveVideoView, which for historical reasons isn't named BrightcoveSurfaceVideoView, and BrightcoveTextureVideoView. Those two classes are designed to be dropped into your XML layouts as a replacement for Android's native VideoView. This class provides public methods to mirror that of VideoView, plus additional logic for handling things like playlists. This class uses an EventEmitter to wire together components, like the VideoDisplayComponent and VideoPlaybackController.
  See Also:
    `EventEmitter`, `VideoDisplayComponent`, `VideoPlaybackController`, `VideoView`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `BaseVideoView.OnProgressListener`
    `static interface` | `BaseVideoView.OnVideoViewSizeChangedListener` Interface definition for a callback to be invoked when the BaseVideoView's size changes.

    - ### Nested classes/interfaces inherited from class android.widget.FrameLayout

      `android.widget.FrameLayout.LayoutParams`

    - ### Nested classes/interfaces inherited from class android.view.ViewGroup

      `android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener`

    - ### Nested classes/interfaces inherited from class android.view.View

      `android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected BrightcoveAudioTracksController` | `brightcoveAudioTracksController`
    `protected BrightcoveClosedCaptioningController` | `brightcoveClosedCaptioningController`
    `protected int` | `duration` Deprecated.
    `protected long` | `durationLong`
    `protected EventEmitter` | `eventEmitter`
    `protected android.widget.ImageView` | `imageView`
    `protected java.util.Map<java.lang.String,java.lang.Integer>` | `listenerTokens`
    `protected android.media.MediaPlayer.OnPreparedListener` | `onPreparedListener`
    `protected VideoPlaybackController` | `playbackController`
    `protected int` | `playheadPosition` Deprecated.
    `protected long` | `playheadPositionLong`
    `protected BrightcovePluginManager` | `pluginManager`
    `protected DefaultSourceSelectionController` | `sourceController`
    `protected VideoDisplayComponent` | `videoDisplay`
    `protected VideoStillDisplayComponent` | `videoStillDisplay`

    - ### Fields inherited from class android.view.ViewGroup

      `CLIP_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`

    - ### Fields inherited from class android.view.View

      `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, Z`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaseVideoView(android.content.Context context)`
    `BaseVideoView(android.content.Context context, android.util.AttributeSet attributeSet)`
    `BaseVideoView(android.content.Context context, android.util.AttributeSet attributeSet, int defStyle)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int index, Video video)` Adds the video to the video list at the specified index.
    `void` | `add(Video video)` Adds the video to the end of the video list.
    `void` | `addAll(java.util.Collection<Video> newVideos)` Add all videos in the collection to the end of the list.
    `void` | `addAll(int index, java.util.Collection<Video> newVideos)` Inserts all videos in the collection at the specified index.
    `void` | `addListener(java.lang.String eventType, EventListener listener)`
    `void` | `addOnVideoViewSizeChangedListener(BaseVideoView.OnVideoViewSizeChangedListener onVideoViewSizeChangedListener)`
    `void` | `addSubtitleSource(android.net.Uri uri, BrightcoveCaptionFormat format)` For adding subtitle sources to the Brightcove Player.
    `protected void` | `adjustPosterImageViewSize(int width, int height)`
    `boolean` | `canPause()`
    `boolean` | `canSeekBackward()`
    `boolean` | `canSeekForward()`
    `protected abstract boolean` | `canShowMediaControls()`
    `void` | `clear()` Removes all videos from the list.
    `void` | `clearOnCompletionListener()`
    `void` | `clearOnPreparedListener()`
    `protected DefaultSourceSelectionController` | `createSourceSelectionController(EventEmitter eventEmitter)`
    `protected abstract VideoDisplayComponent` | `createVideoDisplayComponent(EventEmitter eventEmitter)`
    `void` | `disableClosedCaptioningRendering()`
    `boolean` | `dispatchKeyEvent(android.view.KeyEvent event)`
    `protected void` | `emitErrorEvent(java.lang.String message)`
    `void` | `finishInitialization()` This method finishes initializing the BaseVideoView.
    `Video` | `get(int index)`
    `Analytics` | `getAnalytics()` Returns the analytics component, the part of the player that monitors and tracks video playback and engagement.
    `int` | `getAudioSessionId()`
    `BrightcoveAudioTracksController` | `getAudioTracksController()`
    `BrightcoveMediaController` | `getBrightcoveMediaController()` Access the Brightcove media controller.
    `int` | `getBufferPercentage()`
    `BrightcoveClosedCaptioningController` | `getClosedCaptioningController()`
    `BrightcoveClosedCaptioningView` | `getClosedCaptioningView()`
    `ConcurrencyClient` | `getConcurrencyClient()` Gets the {#ConcurrencyClient} instance being used interact with the Generic Stream Concurrency mechanism
    `int` | `getCurrentIndex()`
    `int` | `getCurrentPosition()` Deprecated.
    `long` | `getCurrentPositionLong()`
    `Video` | `getCurrentVideo()`
    `int` | `getDuration()` Deprecated.
    `long` | `getDurationLong()`
    `EventEmitter` | `getEventEmitter()` Getter for the EventEmitter used by this View
    `java.util.List<Video>` | `getList()`
    `int` | `getMeasuredVideoHeight()` Gets the rendered height of the video on the screen.
    `int` | `getMeasuredVideoWidth()` Gets the rendered width of the video on the screen.
    `android.widget.MediaController` | `getMediaController()` Access the legacy media controller.
    `PictureInPictureManager` | `getPictureInPictureManager()`
    `VideoPlaybackController` | `getPlaybackController()` Returns the video playback controller, the component of the player responsible for managing video playback and emitting cue points.
    `abstract RenderView` | `getRenderView()` Gets refers to the view that will render the video.
    `DefaultSourceSelectionController` | `getSourceController()` Returns the source controller, the component of the player that selects the source to play for a video.
    `android.widget.ImageView` | `getStillView()`
    `VideoDisplayComponent` | `getVideoDisplay()` Returns the video display, the low-level component responsible for decoding and rendering a video.
    `abstract int` | `getVideoHeight()`
    `VideoStillDisplayComponent` | `getVideoStillDisplay()` Returns the video still display, the component of the player that shows and hides the still image if one is available for a video.
    `abstract int` | `getVideoWidth()`
    `protected boolean` | `hasPlayer()`
    `protected void` | `init(android.content.Context context)`
    `protected void` | `initListeners()`
    `boolean` | `isFullScreen()`
    `boolean` | `isHlsRecommended()`
    `boolean` | `isPlaying()`
    `boolean` | `isStreamConcurrencyEnabled()` Checks whether Generic Stream Concurrency is enabled or not
    `void` | `onControllerHide()`
    `protected void` | `onFinishInflate()`
    `boolean` | `onInterceptTouchEvent(android.view.MotionEvent ev)`
    `protected void` | `onLayout(boolean changed, int left, int top, int right, int bottom)`
    `protected void` | `onMeasure(int widthMeasureSpec, int heightMeasureSpec)`
    `protected void` | `onPrepared()`
    `protected void` | `onSizeChanged(int w, int h, int oldw, int oldh)`
    `boolean` | `onTouchEvent(android.view.MotionEvent ev)`
    `void` | `pause()` Pause playback
    `void` | `remove(int index)` Removes the video at the specified index.
    `void` | `removeListener(java.lang.String eventType)`
    `void` | `removeListeners()`
    `void` | `removeOnVideoViewSizeChangedListener(BaseVideoView.OnVideoViewSizeChangedListener onVideoViewSizeChangedListener)`
    `void` | `requestActiveSessions()` Request the current active sessions.
    `void` | `requestLayout()`
    `protected void` | `resetMetaData()` Restores the meta data surrounding a video to its default state
    `void` | `seekTo(int msec)` Deprecated.
    `void` | `seekTo(long msec)` Seek to the time specified
    `void` | `seekToLive()`
    `protected void` | `setChildLayoutParams(android.view.ViewGroup.LayoutParams layoutParams)`
    `void` | `setClosedCaptioningEnabled(boolean value)`
    `void` | `setCurrentIndex(int index)` Sets the current video to the specified index.
    `void` | `setEventEmitter(EventEmitter eventEmitter)` Sets the eventEmitter and instantiates all inner components.
    `void` | `setLayoutParams(android.view.ViewGroup.LayoutParams layoutParams)`
    `void` | `setMediaController(BrightcoveMediaController mediaController)` Establishes the Brightcove media controller to provide a modern set of media controls.
    `void` | `setMediaController(android.widget.MediaController mediaController)` Establishes a legacy Android media controller to provide media controls.
    `void` | `setOnCompletionListener(android.media.MediaPlayer.OnCompletionListener onCompletionListener)`
    `void` | `setOnInfoListener(android.media.MediaPlayer.OnInfoListener onInfoListener)`
    `void` | `setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener onPreparedListener)`
    `void` | `setStreamConcurrencyEnabled(boolean enabled)` Enable Generic Stream Concurrency
    `void` | `setStreamConcurrencyRequestHeaders(java.util.Map<java.lang.String,java.lang.String> requestHeaders)` Sets the headers values that will be passed on each request to the Generic Stream Concurrency.
    `void` | `setStreamConcurrencySessionsListener(ConcurrencyClient.SessionsListener listener)` Sets a listener to get the active sessions
    `void` | `setSubtitleLocale(java.lang.String localeCode)` Sets the locale for a caption source to load, based on the caption locale pulled in.
    `void` | `setupClosedCaptioningRendering()` Instantiates the Brightcove captioning view.
    `protected void` | `setupClosedCaptioningRendering(Video video)` Decide if the captioning view should be instantiated, based on the controller.
    `Video` | `setVideoPath(java.lang.String path)` Replaces player content with the video at the specified path.
    `Video` | `setVideoPath(java.lang.String videoPath, java.util.Map<java.lang.String,java.lang.String> languageCodeCaptionsMap)` Replace player content with the video and captions at the specified paths.
    `Video` | `setVideoURI(android.net.Uri uri)` Replaces player content with the video at the specified URI.
    `void` | `start()` Start playback
    `void` | `stopPlayback()` Stop playback
    `void` | `toggleMediaControlsVisibility()` Toggles the `BrightcoveMediaController`'s visibility when one is set.

    - ### Methods inherited from class android.widget.FrameLayout

      `checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedState`

    - ### Methods inherited from class android.view.ViewGroup

      `addChildrenForAccessibility, 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, 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, updateViewLayout`

    - ### Methods inherited from class android.view.View

      `addFocusables, 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, 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, onStartTemporaryDetach, 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, 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, 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, willNotDraw`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface android.view.ViewParent

      `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows`

- - ### Field Detail

    - #### eventEmitter

          protected EventEmitter eventEmitter

    - #### playbackController

          protected VideoPlaybackController playbackController

    - #### sourceController

          protected DefaultSourceSelectionController sourceController

    - #### videoDisplay

          protected VideoDisplayComponent videoDisplay

    - #### videoStillDisplay

          protected VideoStillDisplayComponent videoStillDisplay

    - #### pluginManager

          protected BrightcovePluginManager pluginManager

    - #### duration

          @Deprecated
          protected int duration

      Deprecated.

    - #### durationLong

          protected long durationLong

    - #### playheadPosition

          @Deprecated
          protected int playheadPosition

      Deprecated.

    - #### playheadPositionLong

          protected long playheadPositionLong

    - #### onPreparedListener

          protected android.media.MediaPlayer.OnPreparedListener onPreparedListener

    - #### imageView

          protected android.widget.ImageView imageView

    - #### listenerTokens

          protected java.util.Map<java.lang.String,java.lang.Integer> listenerTokens

    - #### brightcoveClosedCaptioningController

          protected BrightcoveClosedCaptioningController brightcoveClosedCaptioningController

    - #### brightcoveAudioTracksController

          protected BrightcoveAudioTracksController brightcoveAudioTracksController

  - ### Constructor Detail

    - #### BaseVideoView

          public BaseVideoView(android.content.Context context)

    - #### BaseVideoView

          public BaseVideoView(android.content.Context context,
                               android.util.AttributeSet attributeSet)

    - #### BaseVideoView

          public BaseVideoView(android.content.Context context,
                               android.util.AttributeSet attributeSet,
                               int defStyle)

  - ### Method Detail

    - #### addOnVideoViewSizeChangedListener

          public void addOnVideoViewSizeChangedListener(BaseVideoView.OnVideoViewSizeChangedListener onVideoViewSizeChangedListener)

    - #### removeOnVideoViewSizeChangedListener

          public void removeOnVideoViewSizeChangedListener(BaseVideoView.OnVideoViewSizeChangedListener onVideoViewSizeChangedListener)

    - #### setStreamConcurrencyEnabled

          public void setStreamConcurrencyEnabled(boolean enabled)

      Enable Generic Stream Concurrency
      Parameters:
        `enabled` -

    - #### setStreamConcurrencyRequestHeaders

          public void setStreamConcurrencyRequestHeaders(java.util.Map<java.lang.String,java.lang.String> requestHeaders)

      Sets the headers values that will be passed on each request to the Generic Stream Concurrency. The values should be for the account ID, video ID and the JWT.
      Parameters:
        `requestHeaders` -

    - #### setStreamConcurrencySessionsListener

          public void setStreamConcurrencySessionsListener(ConcurrencyClient.SessionsListener listener)

      Sets a listener to get the active sessions
      Parameters:
        `listener` -

    - #### requestActiveSessions

          public void requestActiveSessions()

      Request the current active sessions. Set a {#SessionsListener} to get the returned active sessions through {`setStreamConcurrencySessionsListener(ConcurrencyClient.SessionsListener)`}

    - #### isStreamConcurrencyEnabled

          public boolean isStreamConcurrencyEnabled()

      Checks whether Generic Stream Concurrency is enabled or not
      Returns:

    - #### getConcurrencyClient

          public final ConcurrencyClient getConcurrencyClient()

      Gets the {#ConcurrencyClient} instance being used interact with the Generic Stream Concurrency mechanism
      Returns:

    - #### onLayout

          protected void onLayout(boolean changed,
                                  int left,
                                  int top,
                                  int right,
                                  int bottom)

      Overrides:
        `onLayout` in class `android.widget.FrameLayout`

    - #### onSizeChanged

          protected void onSizeChanged(int w,
                                       int h,
                                       int oldw,
                                       int oldh)

      Overrides:
        `onSizeChanged` in class `android.view.View`

    - #### requestLayout

          public void requestLayout()

      Specified by:
        `requestLayout` in interface `android.view.ViewParent`
      Overrides:
        `requestLayout` in class `android.view.View`

    - #### onMeasure

          protected void onMeasure(int widthMeasureSpec,
                                   int heightMeasureSpec)

      Overrides:
        `onMeasure` in class `android.widget.FrameLayout`

    - #### onTouchEvent

          public boolean onTouchEvent(android.view.MotionEvent ev)

      Overrides:
        `onTouchEvent` in class `android.view.View`

    - #### onInterceptTouchEvent

          public boolean onInterceptTouchEvent(android.view.MotionEvent ev)

      Overrides:
        `onInterceptTouchEvent` in class `android.view.ViewGroup`

    - #### init

          protected void init(android.content.Context context)

    - #### setLayoutParams

          public void setLayoutParams(android.view.ViewGroup.LayoutParams layoutParams)

      Overrides:
        `setLayoutParams` in class `android.view.View`

    - #### setChildLayoutParams

          protected void setChildLayoutParams(android.view.ViewGroup.LayoutParams layoutParams)

    - #### onFinishInflate

          protected void onFinishInflate()

      Overrides:
        `onFinishInflate` in class `android.view.View`

    - #### finishInitialization

          public void finishInitialization()

      This method finishes initializing the BaseVideoView. It should only be called when creating an instance programatically. Otherwise, it is automatically called by onFinishInflate().

    - #### resetMetaData

          protected void resetMetaData()

      Restores the meta data surrounding a video to its default state

    - #### getMediaController

          public android.widget.MediaController getMediaController()

      Access the legacy media controller.
      Returns:
        null if no legacy media controller is in use, the legacy media controller currently in use otherwise.

    - #### getBrightcoveMediaController

          public BrightcoveMediaController getBrightcoveMediaController()

      Access the Brightcove media controller.
      Returns:
        null if no Brightcove media controller is in use, the Brightcove media controller currently in use otherwise.

    - #### getPictureInPictureManager

          @NonNull
          public PictureInPictureManager getPictureInPictureManager()

    - #### createVideoDisplayComponent

          protected abstract VideoDisplayComponent createVideoDisplayComponent(EventEmitter eventEmitter)

    - #### createSourceSelectionController

          protected DefaultSourceSelectionController createSourceSelectionController(EventEmitter eventEmitter)

    - #### setEventEmitter

          public void setEventEmitter(EventEmitter eventEmitter)

      Sets the eventEmitter and instantiates all inner components. Required to be called before further interactions with the eventEmitter.
      Parameters:
        `eventEmitter` -

    - #### getEventEmitter

          public EventEmitter getEventEmitter()

      Getter for the EventEmitter used by this View
      Returns:
        An instance of EventEmitter

    - #### getRenderView

          @Nullable
          public abstract RenderView getRenderView()

      Gets refers to the view that will render the video.
      Returns:
        null if the view is not available, otherwise reference to the view.

    - #### getVideoWidth

          public abstract int getVideoWidth()

    - #### getVideoHeight

          public abstract int getVideoHeight()

    - #### getMeasuredVideoWidth

          public int getMeasuredVideoWidth()

      Gets the rendered width of the video on the screen.
      Returns:
        the width of the video as measured by the RenderView

    - #### getMeasuredVideoHeight

          public int getMeasuredVideoHeight()

      Gets the rendered height of the video on the screen.
      Returns:
        the height of the video as measured by the RenderView

    - #### getDuration

          @Deprecated
          public int getDuration()

      Deprecated.
      Specified by:
        `getDuration` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### getDurationLong

          public long getDurationLong()

    - #### getCurrentPosition

          @Deprecated
          public int getCurrentPosition()

      Deprecated.
      Specified by:
        `getCurrentPosition` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### getCurrentPositionLong

          public long getCurrentPositionLong()

    - #### getBufferPercentage

          public int getBufferPercentage()

      Specified by:
        `getBufferPercentage` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### isHlsRecommended

          public boolean isHlsRecommended()

    - #### canPause

          public boolean canPause()

      Specified by:
        `canPause` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### canSeekForward

          public boolean canSeekForward()

      Specified by:
        `canSeekForward` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### canSeekBackward

          public boolean canSeekBackward()

      Specified by:
        `canSeekBackward` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### getAudioSessionId

          public int getAudioSessionId()

      Specified by:
        `getAudioSessionId` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### isFullScreen

          public boolean isFullScreen()

    - #### initListeners

          protected void initListeners()

    - #### adjustPosterImageViewSize

          protected void adjustPosterImageViewSize(int width,
                                                   int height)

    - #### onPrepared

          protected void onPrepared()

    - #### setOnCompletionListener

          public void setOnCompletionListener(android.media.MediaPlayer.OnCompletionListener onCompletionListener)

    - #### clearOnCompletionListener

          public void clearOnCompletionListener()

    - #### setOnInfoListener

          public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener onInfoListener)

    - #### setOnPreparedListener

          public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener onPreparedListener)

    - #### clearOnPreparedListener

          public void clearOnPreparedListener()

    - #### setMediaController

          public void setMediaController(BrightcoveMediaController mediaController)

      Establishes the Brightcove media controller to provide a modern set of media controls.
      Parameters:
        `mediaController` - The Brightcove media controller being established or null to have no media controller.

    - #### setMediaController

          public void setMediaController(android.widget.MediaController mediaController)

      Establishes a legacy Android media controller to provide media controls.
      Parameters:
        `mediaController` - The legacy Android media controller to use or null to have no media controller.

    - #### toggleMediaControlsVisibility

          public void toggleMediaControlsVisibility()

      Toggles the `BrightcoveMediaController`'s visibility when one is set.

    - #### canShowMediaControls

          protected abstract boolean canShowMediaControls()

    - #### hasPlayer

          protected boolean hasPlayer()

    - #### onControllerHide

          public void onControllerHide()

    - #### isPlaying

          public boolean isPlaying()

      Specified by:
        `isPlaying` in interface `android.widget.MediaController.MediaPlayerControl`
      Returns:
        True if the player is currently playing.

    - #### start

          public void start()

      Start playback
      Specified by:
        `start` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### pause

          public void pause()

      Pause playback
      Specified by:
        `pause` in interface `android.widget.MediaController.MediaPlayerControl`

    - #### stopPlayback

          public void stopPlayback()

      Stop playback

    - #### seekTo

          @Deprecated
          public void seekTo(int msec)

      Deprecated.
      Seek to the time specified
      Specified by:
        `seekTo` in interface `android.widget.MediaController.MediaPlayerControl`
      Parameters:
        `msec` - time in milliseconds

    - #### seekTo

          public void seekTo(long msec)

      Seek to the time specified
      Parameters:
        `msec` - time in milliseconds

    - #### seekToLive

          public void seekToLive()

    - #### setVideoPath

          public Video setVideoPath(java.lang.String path)

      Replaces player content with the video at the specified path.
      Parameters:
        `path` - HTTP path to a video
      Returns:
        The created Video object.

    - #### setVideoURI

          public Video setVideoURI(android.net.Uri uri)

      Replaces player content with the video at the specified URI.
      Parameters:
        `uri` - Video URI
      Returns:
        The created Video object.

    - #### setVideoPath

          public Video setVideoPath(java.lang.String videoPath,
                                    java.util.Map<java.lang.String,java.lang.String> languageCodeCaptionsMap)

      Replace player content with the video and captions at the specified paths.
      Parameters:
        `videoPath` - HTTP path to the video
        `languageCodeCaptionsMap` - A map of language code to caption urls.

    - #### add

          public void add(Video video)

      Adds the video to the end of the video list.
      Parameters:
        `video` -

    - #### add

          public void add(int index,
                          Video video)
                   throws java.lang.IndexOutOfBoundsException

      Adds the video to the video list at the specified index.
      Parameters:
        `index` -
        `video` -
      Throws:
        `java.lang.IndexOutOfBoundsException` - when index < 0 or index is larger than the size of the video list.

    - #### addAll

          public void addAll(java.util.Collection<Video> newVideos)

      Add all videos in the collection to the end of the list.
      Parameters:
        `newVideos` - The videos to append.

    - #### addAll

          public void addAll(int index,
                             java.util.Collection<Video> newVideos)
                      throws java.lang.IndexOutOfBoundsException

      Inserts all videos in the collection at the specified index.
      Parameters:
        `index` -
        `newVideos` - The videos to append.
      Throws:
        `java.lang.IndexOutOfBoundsException` - when index < 0 or index is larger than the size of the video list.

    - #### get

          public Video get(int index)

      Parameters:
        `index` -
      Returns:
        The video at the specified index.

    - #### getCurrentIndex

          public int getCurrentIndex()

      Returns:
        The index of the current video or -1 if there are none.

    - #### getCurrentVideo

          public Video getCurrentVideo()

    - #### setCurrentIndex

          public void setCurrentIndex(int index)
                               throws java.lang.IndexOutOfBoundsException

      Sets the current video to the specified index.
      Parameters:
        `index` -
      Throws:
        `java.lang.IndexOutOfBoundsException` - when index < 0 or index is larger than the size of the video list.

    - #### getList

          public java.util.List<Video> getList()

      Returns:
        A immutable copy of the video list.

    - #### remove

          public void remove(int index)
                      throws java.lang.IndexOutOfBoundsException

      Removes the video at the specified index.
      Parameters:
        `index` -
      Throws:
        `java.lang.IndexOutOfBoundsException` - when index < 0 or index is larger than the size of the video list.

    - #### clear

          public void clear()

      Removes all videos from the list.

    - #### getPlaybackController

          public VideoPlaybackController getPlaybackController()

      Returns the video playback controller, the component of the player responsible for managing video playback and emitting cue points.
      Returns:
        the playbackController

    - #### getSourceController

          public DefaultSourceSelectionController getSourceController()

      Returns the source controller, the component of the player that selects the source to play for a video.
      Returns:
        the sourceController

    - #### getVideoDisplay

          public VideoDisplayComponent getVideoDisplay()

      Returns the video display, the low-level component responsible for decoding and rendering a video.
      Returns:
        the videoDisplay

    - #### getVideoStillDisplay

          public VideoStillDisplayComponent getVideoStillDisplay()

      Returns the video still display, the component of the player that shows and hides the still image if one is available for a video.
      Returns:
        the videoStillDisplay

    - #### getAnalytics

          public Analytics getAnalytics()

      Returns the analytics component, the part of the player that monitors and tracks video playback and engagement.
      Returns:
        the analytics component

    - #### addSubtitleSource

          public void addSubtitleSource(android.net.Uri uri,
                                        BrightcoveCaptionFormat format)

      For adding subtitle sources to the Brightcove Player. Loosely based off of the Android SDK method addSubtitleSource.
      See Also:
        `VideoView.addSubtitleSource(java.io.InputStream, android.media.MediaFormat)`

    - #### setSubtitleLocale

          public void setSubtitleLocale(java.lang.String localeCode)

      Sets the locale for a caption source to load, based on the caption locale pulled in. NOTE ABOUT USING WITH THE BRIGHTCOVE CAPTION CONTROLLER ONLY. ANDROID SUBTITLE MANAGER DOESNT NEED THIS.
      Parameters:
        `localeCode` - the two character locale code for the caption URI.

    - #### getClosedCaptioningView

          public BrightcoveClosedCaptioningView getClosedCaptioningView()

    - #### getClosedCaptioningController

          public BrightcoveClosedCaptioningController getClosedCaptioningController()

    - #### getAudioTracksController

          public BrightcoveAudioTracksController getAudioTracksController()

    - #### setClosedCaptioningEnabled

          public void setClosedCaptioningEnabled(boolean value)

    - #### addListener

          public void addListener(java.lang.String eventType,
                                  EventListener listener)

    - #### removeListener

          public void removeListener(java.lang.String eventType)

    - #### removeListeners

          public void removeListeners()

    - #### setupClosedCaptioningRendering

          protected void setupClosedCaptioningRendering(Video video)

      Decide if the captioning view should be instantiated, based on the controller.
      Parameters:
        `video` - - the video with or without captioning

    - #### setupClosedCaptioningRendering

          public void setupClosedCaptioningRendering()

      Instantiates the Brightcove captioning view.

    - #### disableClosedCaptioningRendering

          public void disableClosedCaptioningRendering()

    - #### emitErrorEvent

          protected void emitErrorEvent(java.lang.String message)

    - #### getStillView

          public android.widget.ImageView getStillView()

    - #### dispatchKeyEvent

          public boolean dispatchKeyEvent(android.view.KeyEvent event)

      Overrides:
        `dispatchKeyEvent` in class `android.view.ViewGroup`