Package 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 Description static class
BrightcoveClosedCaptioningView.ClosedCaptioningMode
Specifies the type of captions being used currently.protected class
BrightcoveClosedCaptioningView.TimeMapEntry
Deprecated.-
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 Description protected java.util.TreeMap<java.lang.Integer,java.util.ArrayList<BrightcoveClosedCaption>>
captionsPerSecondMap
Deprecated.Use {captionsPerSecondMapLong
} insteadprotected java.util.TreeMap<java.lang.Long,java.util.ArrayList<BrightcoveClosedCaption>>
captionsPerSecondMapLong
protected android.util.SparseArray<java.lang.StringBuilder>
currentCaptionBlockArray
Deprecated.Use {currentCaptionBlockArrayLong
} insteadprotected 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.Use {lastProgressTimeLong
} insteadprotected long
lastProgressTimeLong
protected EventListener
onSelectClosedCaptionListener
protected EventListener
progressListener
Listens forEventType.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/widthprotected 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_ACCESSIBILITY_ACTION, 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_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, 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 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 Description protected android.view.ViewGroup
buildCaptionBlock(CaptionsDocument document, BrightcoveClosedCaption closedCaption, android.widget.LinearLayout linearLayout)
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.Use {findCaptionsForPosition(long)
} instead.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 aGravity
value.BrightcoveClosedCaptioningView.ClosedCaptioningMode
getMode()
Retrieves the currentBrightcoveClosedCaptioningView.ClosedCaptioningMode
.int
getSafeAreaMarginHeight()
Computes the FCC "safe-area margin" height based on the current height of this instance and theSAFE_AREA
.int
getSafeAreaMarginWidth()
Computes the FCC "safe-area margin" width based on the current width of this instance and theSAFE_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 defaultSAFE_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, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findOnBackInvokedDispatcherForChild, 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, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findOnBackInvokedDispatcher, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, 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, getPreferKeepClearRects, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, 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, getViewTranslationResponse, 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, isAutoHandwritingEnabled, 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, isPreferKeepClear, 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, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, 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, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, 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, setAllowClickWhenDisabled, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setAutoHandwritingEnabled, 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, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPreferKeepClear, setPreferKeepClearRects, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, 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, setViewTranslationCallback, 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<BrightcoveClosedCaption>> captionsPerSecondMap
Deprecated.Use {captionsPerSecondMapLong
} instead
-
captionsPerSecondMapLong
protected java.util.TreeMap<java.lang.Long,java.util.ArrayList<BrightcoveClosedCaption>> captionsPerSecondMapLong
-
currentCaptionBlocks
protected java.util.ArrayList<android.widget.LinearLayout> currentCaptionBlocks
-
currentCaptionBlockArray
@Deprecated protected android.util.SparseArray<java.lang.StringBuilder> currentCaptionBlockArray
Deprecated.Use {currentCaptionBlockArrayLong
} instead
-
currentCaptionBlockArrayLong
protected android.util.LongSparseArray<java.lang.StringBuilder> currentCaptionBlockArrayLong
-
progressListenerToken
protected int progressListenerToken
-
lastProgressTime
@Deprecated protected int lastProgressTime
Deprecated.Use {lastProgressTimeLong
} instead
-
lastProgressTimeLong
protected long lastProgressTimeLong
-
videoView
protected BaseVideoView videoView
-
defaultStyle
protected Span defaultStyle
-
defaultStyleId
protected java.lang.String defaultStyleId
-
progressListener
protected EventListener progressListener
Listens forEventType.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(android.content.Context)
-
BrightcoveClosedCaptioningView
public BrightcoveClosedCaptioningView(android.content.Context context, android.util.AttributeSet attrs)
- See Also:
View(android.content.Context, android.util.AttributeSet)
-
BrightcoveClosedCaptioningView
public BrightcoveClosedCaptioningView(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
- See Also:
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 theSAFE_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 theSAFE_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 EventEmitterbaseVideoView
- 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 ofBrightcoveClosedCaptioningView.ClosedCaptioningMode
.- Parameters:
mode
- the desiredBrightcoveClosedCaptioningView.ClosedCaptioningMode
-
getMode
@NonNull public BrightcoveClosedCaptioningView.ClosedCaptioningMode getMode()
Retrieves the currentBrightcoveClosedCaptioningView.ClosedCaptioningMode
.- Returns:
- the current
BrightcoveClosedCaptioningView.ClosedCaptioningMode
-
findCaptionsForPosition
@Deprecated public java.util.ArrayList<android.widget.LinearLayout> findCaptionsForPosition(int position)
Deprecated.Use {findCaptionsForPosition(long)
} instead.
-
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 aGravity
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, android.widget.LinearLayout linearLayout)
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 anyclosedCaption
- 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 defaultSAFE_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%
-
-