com.brightcove.player.view

## Class BrightcoveClosedCaptioningView

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

- All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent, Component

      @Emits(events="captionsAvailable")
       @ListensFor(events={"caption","completed","didLoadClosedCaptions","progress","toggleClosedCaptions","didShowMediaControls","didHideMediaControls","selectClosedCaptionTrack","didEnterPictureInPictureMode","didExitPictureInPictureMode","seekbarDraggingStart","seekbarDraggingStop","adBreakStarted","adBreakCompleted"})
      public class BrightcoveClosedCaptioningView
      extends android.widget.FrameLayout
      implements Component

  This view (a FrameLayout) implements the proper layout and formatting for closed captions for a BaseVideoView. This view is also a component which is responsible for initiating the loading and parsing of captions.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `BrightcoveClosedCaptioningView.ClosedCaptioningMode` Specifies the type of captions being used currently.
    `protected class` | `BrightcoveClosedCaptioningView.TimeMapEntry`

    - ### 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 java.util.TreeMap<java.lang.Integer,java.util.ArrayList<BrightcoveClosedCaptioningView.TimeMapEntry>>` | `captionsPerSecondMap` Deprecated.
    `protected java.util.TreeMap<java.lang.Long,java.util.ArrayList<BrightcoveClosedCaptioningView.TimeMapEntry>>` | `captionsPerSecondMapLong`
    `protected android.util.SparseArray<java.lang.StringBuilder>` | `currentCaptionBlockArray` Deprecated.
    `protected android.util.LongSparseArray<java.lang.StringBuilder>` | `currentCaptionBlockArrayLong`
    `protected java.util.ArrayList<android.widget.LinearLayout>` | `currentCaptionBlocks`
    `protected BrightcoveClosedCaptioningView.ClosedCaptioningMode` | `currentMode`
    `static int` | `DEFAULT_HORIZONTAL_GRAVITY` Deprecated. As of 4.8.0, this is no longer used.
    `static int` | `DEFAULT_VERTICAL_GRAVITY` Deprecated. As of 4.8.0, this is no longer used.
    `protected Span` | `defaultStyle`
    `protected java.lang.String` | `defaultStyleId`
    `protected EventListener` | `didLoadCaptionsListener` Called when a closed captioning document is loaded.
    `protected EventEmitter` | `eventEmitter`
    `protected android.view.LayoutInflater` | `inflater`
    `protected int` | `lastProgressTime` Deprecated.
    `protected long` | `lastProgressTimeLong`
    `protected EventListener` | `onSelectClosedCaptionListener`
    `protected EventListener` | `progressListener` Listens for `EventType.PROGRESS` events and loads the proper captions as video progresses.
    `protected int` | `progressListenerToken`
    `protected static float` | `SAFE_AREA` FCC "safe-area margins" as a fraction of player height/width
    `protected static java.lang.String` | `TAG`
    `protected EventListener` | `toggleClosedCaptionsListener`
    `protected BaseVideoView` | `videoView`

    - ### 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
    `BrightcoveClosedCaptioningView(android.content.Context context)`
    `BrightcoveClosedCaptioningView(android.content.Context context, android.util.AttributeSet attrs)`
    `BrightcoveClosedCaptioningView(android.content.Context context, android.util.AttributeSet attrs, int defStyle)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected android.view.ViewGroup` | `buildCaptionBlock(CaptionsDocument document, BrightcoveClosedCaption closedCaption)` Inflates a caption_block layout and adds a caption_text element for each line in the caption block.
    `protected java.lang.CharSequence` | `buildSpannableString(Span span)`
    `protected void` | `cancelProgressListener()` Cancels the PROGRESS event listener.
    `void` | `clear()` Clears the currently loaded captions from this CaptionsView.
    `protected java.lang.CharSequence` | `collapseWhitespace(java.lang.CharSequence sequence)` This converts any groups of whitespace to a single space character.
    `protected void` | `emitCaptionsAvailable(boolean isAvailable)` Emits event indicating whether captions are available or not.
    `java.util.ArrayList<android.widget.LinearLayout>` | `findCaptionsForPosition(int position)` Deprecated.
    `java.util.ArrayList<android.widget.LinearLayout>` | `findCaptionsForPosition(long position)` Retrieves the specific view block containing rendered captions for the given video position in milliseconds, if one exists.
    `protected int` | `getCaptionTextAlignAsGravity(BrightcoveClosedCaption closedCaption)` Translates the text alignment of the caption block to a `Gravity` value.
    `BrightcoveClosedCaptioningView.ClosedCaptioningMode` | `getMode()` Retrieves the current `BrightcoveClosedCaptioningView.ClosedCaptioningMode`.
    `int` | `getSafeAreaMarginHeight()` Computes the FCC "safe-area margin" height based on the current height of this instance and the `SAFE_AREA`.
    `int` | `getSafeAreaMarginWidth()` Computes the FCC "safe-area margin" width based on the current width of this instance and the `SAFE_AREA`.
    `void` | `initialize(EventEmitter emitter)` Deprecated. Please use the initiliaze(EventEmitter, BaseVideoView) method instead.
    `void` | `initialize(EventEmitter emitter, BaseVideoView baseVideoView)` Initializes the CaptionsView with the given EventEmitter and BaseVideoView.
    `void` | `prepareDFXPCaptions(TTMLDocument document)` Prepares the rendered View blocks for all captions listed in the given TTMLDocument.
    `void` | `prepareLayout()` Deprecated. As of 4.8.0, no longer does anything.
    `void` | `prepareWebVTTCaptions(WebVTTDocument document)` Prepares the rendered View blocks for all captions listed in the given WebVTTDocument.
    `void` | `refreshCaptions()`
    `void` | `refreshCaptions(int seekToTime)` Deprecated.
    `void` | `refreshCaptions(long seekToTime)`
    `protected void` | `registerProgressListener()` Registers the PROGRESS event listener.
    `protected Region` | `resolveRegionForBlock(Block block, CaptionsDocument document)`
    `protected Region` | `resolveRegionForBlock(Block block, TTMLDocument document)`
    `void` | `setKeepCaptionsWithinVideoBounds(boolean keepCaptionsWithinVideoBounds)` The default behaviour of the BrightcoveClosedCaptioningView is to restrict the caption positioning to be within the bounds of the actual video, not the VideoView.
    `void` | `setMode(BrightcoveClosedCaptioningView.ClosedCaptioningMode mode)` Specifies the CaptionMode for this CaptionsView.
    `void` | `setSafeAreaPercent(float safeAreaPercent)` Optionally override the default `SAFE_AREA` with a custom percent.
    `protected android.view.ViewGroup` | `styleCaptions(android.view.ViewGroup captionBlock)` Style a Caption Block and all child CaptionTextViews with the current CaptionsStyle.

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

      `checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, 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, dispatchKeyEvent, 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, 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, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, 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, requestLayout`

- - ### Field Detail

    - #### TAG

          protected static final java.lang.String TAG

    - #### DEFAULT_HORIZONTAL_GRAVITY

          @Deprecated
          public static final int DEFAULT_HORIZONTAL_GRAVITY

      Deprecated. As of 4.8.0, this is no longer used.
      See Also:
        Constant Field Values

    - #### DEFAULT_VERTICAL_GRAVITY

          @Deprecated
          public static final int DEFAULT_VERTICAL_GRAVITY

      Deprecated. As of 4.8.0, this is no longer used.
      See Also:
        Constant Field Values

    - #### SAFE_AREA

          protected static final float SAFE_AREA

      FCC "safe-area margins" as a fraction of player height/width
      See Also:
        Constant Field Values

    - #### eventEmitter

          protected EventEmitter eventEmitter

    - #### currentMode

          protected BrightcoveClosedCaptioningView.ClosedCaptioningMode currentMode

    - #### inflater

          protected android.view.LayoutInflater inflater

    - #### captionsPerSecondMap

          @Deprecated
          protected java.util.TreeMap<java.lang.Integer,java.util.ArrayList<BrightcoveClosedCaptioningView.TimeMapEntry>> captionsPerSecondMap

      Deprecated.

    - #### captionsPerSecondMapLong

          protected java.util.TreeMap<java.lang.Long,java.util.ArrayList<BrightcoveClosedCaptioningView.TimeMapEntry>> captionsPerSecondMapLong

    - #### currentCaptionBlocks

          protected java.util.ArrayList<android.widget.LinearLayout> currentCaptionBlocks

    - #### currentCaptionBlockArray

          @Deprecated
          protected android.util.SparseArray<java.lang.StringBuilder> currentCaptionBlockArray

      Deprecated.

    - #### currentCaptionBlockArrayLong

          protected android.util.LongSparseArray<java.lang.StringBuilder> currentCaptionBlockArrayLong

    - #### progressListenerToken

          protected int progressListenerToken

    - #### lastProgressTime

          @Deprecated
          protected int lastProgressTime

      Deprecated.

    - #### lastProgressTimeLong

          protected long lastProgressTimeLong

    - #### videoView

          protected BaseVideoView videoView

    - #### defaultStyle

          protected Span defaultStyle

    - #### defaultStyleId

          protected java.lang.String defaultStyleId

    - #### progressListener

          protected EventListener progressListener

      Listens for `EventType.PROGRESS` events and loads the proper captions as video progresses.

    - #### didLoadCaptionsListener

          protected EventListener didLoadCaptionsListener

      Called when a closed captioning document is loaded.

    - #### toggleClosedCaptionsListener

          protected EventListener toggleClosedCaptionsListener

    - #### onSelectClosedCaptionListener

          protected EventListener onSelectClosedCaptionListener

  - ### Constructor Detail

    - #### BrightcoveClosedCaptioningView

          public BrightcoveClosedCaptioningView(android.content.Context context)

      See Also:
        `View.View(android.content.Context)`

    - #### BrightcoveClosedCaptioningView

          public BrightcoveClosedCaptioningView(android.content.Context context,
                                                android.util.AttributeSet attrs)

      See Also:
        `View.View(android.content.Context, android.util.AttributeSet)`

    - #### BrightcoveClosedCaptioningView

          public BrightcoveClosedCaptioningView(android.content.Context context,
                                                android.util.AttributeSet attrs,
                                                int defStyle)

      See Also:
        `View.View(android.content.Context, android.util.AttributeSet, int)`

  - ### Method Detail

    - #### setKeepCaptionsWithinVideoBounds

          public void setKeepCaptionsWithinVideoBounds(boolean keepCaptionsWithinVideoBounds)

      The default behaviour of the BrightcoveClosedCaptioningView is to restrict the caption positioning to be within the bounds of the actual video, not the VideoView. By setting this, the developer can decide whether to render the captions outside the video, e.g. in the case of a player that is 16:9 but is viewing a 2.35:1 video.
      Parameters:
        `keepCaptionsWithinVideoBounds` - if true, always render the captions within the video bounds. If false, allow captions to be rendered in the letterboxing (the area outside the video itself, but within the VideoView).

    - #### getSafeAreaMarginWidth

          public int getSafeAreaMarginWidth()

      Computes the FCC "safe-area margin" width based on the current width of this instance and the `SAFE_AREA`. Since Android defines margin as outside of the view and padding as within, the value returned by this method should be considered the minimum amount of padding for the CaptionsView itself.
      Returns:
        the size of the safe area in pixels

    - #### getSafeAreaMarginHeight

          public int getSafeAreaMarginHeight()

      Computes the FCC "safe-area margin" height based on the current height of this instance and the `SAFE_AREA`. Since Android defines margin as outside of the view and padding as within, the value returned by this method should be considered the minimum amount of padding for the CaptionsView itself.
      Returns:
        the size of the safe area in pixels

    - #### initialize

          @Deprecated
          public void initialize(EventEmitter emitter)

      Deprecated. Please use the initiliaze(EventEmitter, BaseVideoView) method instead.
      Initializes the CaptionsView with the given EventEmitter.
      Parameters:
        `emitter` - the desired EventEmitter

    - #### initialize

          public void initialize(EventEmitter emitter,
                                 BaseVideoView baseVideoView)

      Initializes the CaptionsView with the given EventEmitter and BaseVideoView.
      Parameters:
        `emitter` - the desired EventEmitter
        `baseVideoView` - the BaseVideoView to hook up to

    - #### clear

          public void clear()

      Clears the currently loaded captions from this CaptionsView.

    - #### setMode

          public void setMode(@NonNull
                              BrightcoveClosedCaptioningView.ClosedCaptioningMode mode)

      Specifies the CaptionMode for this CaptionsView. Can be any valid value of `BrightcoveClosedCaptioningView.ClosedCaptioningMode`.
      Parameters:
        `mode` - the desired `BrightcoveClosedCaptioningView.ClosedCaptioningMode`

    - #### getMode

          @NonNull
          public BrightcoveClosedCaptioningView.ClosedCaptioningMode getMode()

      Retrieves the current `BrightcoveClosedCaptioningView.ClosedCaptioningMode`.
      Returns:
        the current `BrightcoveClosedCaptioningView.ClosedCaptioningMode`

    - #### findCaptionsForPosition

          @Deprecated
          public java.util.ArrayList<android.widget.LinearLayout> findCaptionsForPosition(int position)

      Deprecated.
      Retrieves the specific view block containing rendered captions for the given video position in milliseconds, if one exists. If there are no captions at the given position, null is returned.
      Parameters:
        `position` - the video position in milliseconds
      Returns:
        a ViewGroup containing the rendered captions, or null if there are no captions at the given video position

    - #### findCaptionsForPosition

          public java.util.ArrayList<android.widget.LinearLayout> findCaptionsForPosition(long position)

      Retrieves the specific view block containing rendered captions for the given video position in milliseconds, if one exists. If there are no captions at the given position, null is returned.
      Parameters:
        `position` - the video position in milliseconds
      Returns:
        a ViewGroup containing the rendered captions, or null if there are no captions at the given video position

    - #### styleCaptions

          protected android.view.ViewGroup styleCaptions(android.view.ViewGroup captionBlock)

      Style a Caption Block and all child CaptionTextViews with the current CaptionsStyle.
      Parameters:
        `captionBlock` - The ViewGroup with CaptionTextViews to style.
      Returns:
        The Caption Block passed in, with styling applied.

    - #### prepareDFXPCaptions

          public void prepareDFXPCaptions(TTMLDocument document)

      Prepares the rendered View blocks for all captions listed in the given TTMLDocument. This initially clears the state of the current caption blocks and time position mapping.
      Parameters:
        `document` - the TTMLDocument containing the captions to prepare

    - #### prepareWebVTTCaptions

          public void prepareWebVTTCaptions(WebVTTDocument document)

      Prepares the rendered View blocks for all captions listed in the given WebVTTDocument. This initially clears the state of the current caption blocks and time position mapping.
      Parameters:
        `document` - the WebVTTDocument containing the captions to prepare

    - #### getCaptionTextAlignAsGravity

          protected int getCaptionTextAlignAsGravity(BrightcoveClosedCaption closedCaption)

      Translates the text alignment of the caption block to a `Gravity` value. If the caption does not have an explicit text alignment, `Gravity.CENTER_HORIZONTAL` is returned as a default.
      Parameters:
        `closedCaption` - the caption block
      Returns:
        a horizontal Gravity value.

    - #### buildCaptionBlock

          protected android.view.ViewGroup buildCaptionBlock(CaptionsDocument document,
                                                             BrightcoveClosedCaption closedCaption)

      Inflates a caption_block layout and adds a caption_text element for each line in the caption block. The layout gravity is set on the new caption_block to position the block within the root rectangle and the gravity is set on the caption_text elements to align the text within the block. The displayAlign of the region associated with the caption block, if any, determines the vertical position. The textAlign of the caption block determines the horizontal position and text alignment.
      Parameters:
        `document` - the document containing the caption block and the region definition applicable to the block, if any
        `closedCaption` - the caption block
      Returns:
        a new caption_block populated with a caption_text element for each line in the caption block

    - #### prepareLayout

          @Deprecated
          public void prepareLayout()

      Deprecated. As of 4.8.0, no longer does anything.

    - #### registerProgressListener

          protected void registerProgressListener()

      Registers the PROGRESS event listener.

    - #### cancelProgressListener

          protected void cancelProgressListener()

      Cancels the PROGRESS event listener.

    - #### emitCaptionsAvailable

          protected void emitCaptionsAvailable(boolean isAvailable)

      Emits event indicating whether captions are available or not.

    - #### collapseWhitespace

          protected java.lang.CharSequence collapseWhitespace(java.lang.CharSequence sequence)

      This converts any groups of whitespace to a single space character.

    - #### resolveRegionForBlock

          protected Region resolveRegionForBlock(Block block,
                                                 TTMLDocument document)

    - #### resolveRegionForBlock

          protected Region resolveRegionForBlock(Block block,
                                                 CaptionsDocument document)

    - #### buildSpannableString

          protected java.lang.CharSequence buildSpannableString(Span span)

    - #### refreshCaptions

          public void refreshCaptions()

    - #### refreshCaptions

          @Deprecated
          public void refreshCaptions(int seekToTime)

      Deprecated.

    - #### refreshCaptions

          public void refreshCaptions(long seekToTime)

    - #### setSafeAreaPercent

          public void setSafeAreaPercent(float safeAreaPercent)

      Optionally override the default `SAFE_AREA` with a custom percent. Example: for a caption margin of 5% of the video view's height and width, use 0.05. For a caption margin of 2.5% of the video view's height and width, use 0.025.
      Parameters:
        `safeAreaPercent` - the percentage as a decimal where 0.05 = 5%