public class VideoPlayer<P extends AbstractVideoPlayer> extends android.widget.FrameLayout implements InterVideoPlayer
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListenerandroid.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| 限定符和类型 | 字段和说明 |
|---|---|
protected android.content.res.AssetFileDescriptor |
mAssetFileDescriptor
assets文件
|
protected AudioFocusHelper |
mAudioFocusHelper |
protected int |
mCurrentPlayerState
播放模式,普通模式,小窗口模式,正常模式等等
存在局限性:比如小窗口下的正在播放模式,那么mCurrentMode就是STATE_PLAYING,而不是MODE_TINY_WINDOW并存
|
protected int |
mCurrentPlayState
当前播放器的状态
比如:错误,开始播放,暂停播放,缓存中等等状态
|
protected long |
mCurrentPosition
当前正在播放视频的位置
|
protected int |
mCurrentScreenScaleType |
protected boolean |
mEnableAudioFocus
监听系统中音频焦点改变
|
protected java.util.Map<java.lang.String,java.lang.String> |
mHeaders
当前视频地址的请求头
|
protected boolean |
mIsFullScreen
是否处于全屏状态
|
protected boolean |
mIsLooping
循环播放
|
protected boolean |
mIsMute
是否静音
|
protected boolean |
mIsTinyScreen
是否处于小屏状态
|
protected P |
mMediaPlayer
播放器
|
protected java.util.List<OnVideoStateListener> |
mOnStateChangeListeners
OnStateChangeListener集合,保存了所有开发者设置的监听器
|
protected android.widget.FrameLayout |
mPlayerContainer
真正承载播放器视图的容器
|
protected <any> |
mPlayerFactory
实例化播放核心
|
protected ProgressManager |
mProgressManager
进度管理器,设置之后播放器会记录播放进度,以便下次播放恢复进度
|
protected InterSurfaceView |
mRenderView |
protected SurfaceFactory |
mRenderViewFactory |
protected int[] |
mTinyScreenSize |
protected java.lang.String |
mUrl
当前播放视频的地址
|
protected BaseVideoController |
mVideoController
控制器
|
protected int[] |
mVideoSize |
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_CACHEACCESSIBILITY_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, 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| 构造器和说明 |
|---|
VideoPlayer(android.content.Context context) |
VideoPlayer(android.content.Context context,
android.util.AttributeSet attrs) |
VideoPlayer(android.content.Context context,
android.util.AttributeSet attrs,
int defStyleAttr) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
addDisplay()
初始化视频渲染View
|
void |
addOnStateChangeListener(OnVideoStateListener listener)
添加一个播放状态监听器,播放状态发生变化时将会调用。
|
void |
clearOnStateChangeListeners()
移除所有播放状态监听
|
android.graphics.Bitmap |
doScreenShot()
截图,暂不支持SurfaceView
|
int |
getBufferedPercentage()
获取当前缓冲百分比
|
int |
getCurrentPlayerState()
获取当前播放器的状态
|
int |
getCurrentPlayState()
获取当前的播放状态
|
long |
getCurrentPosition()
获取当前播放的位置
|
long |
getDuration()
获取视频总时长
|
float |
getSpeed()
获取倍速速度
|
long |
getTcpSpeed()
获取缓冲速度
|
java.lang.String |
getUrl()
获取视频地址
|
int[] |
getVideoSize()
获取视频宽高,其中width: mVideoSize[0], height: mVideoSize[1]
|
protected void |
initPlayer()
初始化播放器
|
protected void |
initView()
初始化播放器视图
|
boolean |
isFullScreen()
判断是否处于全屏状态
|
protected boolean |
isInIdleState()
是否处于未播放状态
|
protected boolean |
isInPlaybackState()
是否处于播放状态
|
boolean |
isMute()
是否处于静音状态
|
boolean |
isPlaying()
是否处于播放状态
|
boolean |
isTinyScreen()
是否是小窗口模式
|
protected void |
onAttachedToWindow() |
boolean |
onBackPressed()
改变返回键逻辑,用于activity
|
void |
onCompletion()
视频播放完成回调
|
protected void |
onDetachedFromWindow() |
void |
onError(int type,
java.lang.String error)
视频播放出错回调
|
void |
onInfo(int what,
int extra) |
void |
onPrepared()
视频缓冲完毕,准备开始播放时回调
|
protected android.os.Parcelable |
onSaveInstanceState() |
void |
onVideoSizeChanged(int videoWidth,
int videoHeight) |
void |
onWindowFocusChanged(boolean hasWindowFocus) |
void |
pause()
暂停播放
|
protected boolean |
prepareDataSource()
设置播放数据
|
void |
release()
释放播放器
|
void |
removeOnStateChangeListener(OnVideoStateListener listener)
移除某个播放状态监听
|
void |
replay(boolean resetPosition)
重新播放
|
void |
resume()
继续播放
|
protected void |
saveProgress()
保存播放进度
|
void |
seekTo(long pos)
调整播放进度
|
void |
setAssetFileDescriptor(android.content.res.AssetFileDescriptor fd)
用于播放assets里面的视频文件
|
void |
setController(BaseVideoController mediaController)
设置控制器,传null表示移除控制器
|
protected void |
setInitOptions()
初始化之前的配置项
|
void |
setLooping(boolean looping)
循环播放, 默认不循环播放
|
void |
setMirrorRotation(boolean enable)
设置镜像旋转,暂不支持SurfaceView
|
void |
setMute(boolean isMute)
设置静音
|
void |
setOnStateChangeListener(OnVideoStateListener listener)
设置一个播放状态监听器,播放状态发生变化时将会调用,
如果你想同时设置多个监听器,推荐
addOnStateChangeListener(OnVideoStateListener)。 |
protected void |
setOptions()
初始化之后的配置项
|
void |
setPlayerFactory(<any> playerFactory)
自定义播放核心,继承
PlayerFactory实现自己的播放核心 |
protected void |
setPlayerState(int playerState)
向Controller设置播放器状态,包含全屏状态和非全屏状态
播放模式
普通模式,小窗口模式,正常模式三种其中一种
MODE_NORMAL 普通模式
MODE_FULL_SCREEN 全屏模式
MODE_TINY_WINDOW 小屏模式
|
protected void |
setPlayState(int playState)
向Controller设置播放状态,用于控制Controller的ui展示
这里使用注解限定符,不要使用1,2这种直观数字,不方便知道意思
播放状态,主要是指播放器的各种状态
-1 播放错误
0 播放未开始
1 播放准备中
2 播放准备就绪
3 正在播放
4 暂停播放
5 正在缓冲(播放器正在播放时,缓冲区数据不足,进行缓冲,缓冲区数据足够后恢复播放)
6 暂停缓冲(播放器正在播放时,缓冲区数据不足,进行缓冲,此时暂停播放器,继续缓冲,缓冲区数据足够后恢复暂停
7 播放完成
8 开始播放中止
|
void |
setProgressManager(ProgressManager progressManager)
设置进度管理器,用于保存播放进度
|
void |
setRenderViewFactory(SurfaceFactory renderViewFactory)
自定义RenderView,继承
SurfaceFactory实现自己的RenderView |
void |
setRotation(float rotation)
旋转视频画面
|
void |
setScreenScaleType(int screenScaleType)
设置视频比例
|
void |
setSpeed(float speed)
设置播放速度
|
void |
setUrl(java.lang.String url)
设置视频地址
|
void |
setUrl(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> headers)
设置包含请求头信息的视频地址
|
void |
setVideoBuilder(VideoPlayerBuilder videoBuilder)
-----------------------------暴露api方法--------------------------------------
|
void |
setVolume(float v1,
float v2)
设置音量 0.0f-1.0f 之间
|
protected boolean |
showNetWarning()
是否显示移动网络提示,可在Controller中配置
|
void |
start()
开始播放,注意:调用此方法后必须调用
release()释放播放器,否则会导致内存泄漏 |
void |
startFullScreen()
进入全屏
|
protected void |
startInPlaybackState()
播放状态下开始播放
|
protected boolean |
startPlay()
第一次播放
|
protected void |
startPrepare(boolean reset)
开始准备播放(直接播放)
|
void |
startTinyScreen()
开启小屏
|
void |
stopFullScreen()
退出全屏
|
void |
stopTinyScreen()
退出小屏
|
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedStateaddChildrenForAccessibility, 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, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayoutaddExtraDataToAccessibilityNodeInfo, 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, 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, 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, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, 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, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, 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, onProvideStructure, onProvideVirtualStructure, onRestoreInstanceState, onRtlPropertiesChanged, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, 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, 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, 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, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, 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, willNotDrawclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcanResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayoutprotected P extends AbstractVideoPlayer mMediaPlayer
protected <any> mPlayerFactory
protected BaseVideoController mVideoController
protected android.widget.FrameLayout mPlayerContainer
protected InterSurfaceView mRenderView
protected SurfaceFactory mRenderViewFactory
protected int mCurrentScreenScaleType
protected int[] mVideoSize
protected boolean mIsMute
protected java.lang.String mUrl
protected java.util.Map<java.lang.String,java.lang.String> mHeaders
protected android.content.res.AssetFileDescriptor mAssetFileDescriptor
protected long mCurrentPosition
protected int mCurrentPlayState
protected int mCurrentPlayerState
protected boolean mIsFullScreen
protected boolean mIsTinyScreen
protected int[] mTinyScreenSize
protected boolean mEnableAudioFocus
protected AudioFocusHelper mAudioFocusHelper
protected java.util.List<OnVideoStateListener> mOnStateChangeListeners
protected ProgressManager mProgressManager
protected boolean mIsLooping
public VideoPlayer(android.content.Context context)
public VideoPlayer(android.content.Context context,
android.util.AttributeSet attrs)
public VideoPlayer(android.content.Context context,
android.util.AttributeSet attrs,
int defStyleAttr)
protected void onAttachedToWindow()
onAttachedToWindow 在类中 android.view.ViewGroupprotected void onDetachedFromWindow()
onDetachedFromWindow 在类中 android.view.ViewGrouppublic void onWindowFocusChanged(boolean hasWindowFocus)
onWindowFocusChanged 在类中 android.view.Viewprotected android.os.Parcelable onSaveInstanceState()
onSaveInstanceState 在类中 android.view.Viewprotected void initView()
public void setController(BaseVideoController mediaController)
mediaController - controllerpublic void start()
release()释放播放器,否则会导致内存泄漏start 在接口中 InterVideoPlayerprotected boolean startPlay()
protected void initPlayer()
protected boolean showNetWarning()
protected void setInitOptions()
protected void setOptions()
protected void addDisplay()
protected void startPrepare(boolean reset)
protected boolean prepareDataSource()
protected void startInPlaybackState()
public void pause()
pause 在接口中 InterVideoPlayerpublic void resume()
public void release()
protected void saveProgress()
protected boolean isInPlaybackState()
protected boolean isInIdleState()
public void replay(boolean resetPosition)
replay 在接口中 InterVideoPlayerresetPosition - 是否从头开始播放public long getDuration()
getDuration 在接口中 InterVideoPlayerpublic long getCurrentPosition()
getCurrentPosition 在接口中 InterVideoPlayerpublic void seekTo(long pos)
seekTo 在接口中 InterVideoPlayerpos - 位置public boolean isPlaying()
isPlaying 在接口中 InterVideoPlayerpublic int getBufferedPercentage()
getBufferedPercentage 在接口中 InterVideoPlayerpublic void setMute(boolean isMute)
setMute 在接口中 InterVideoPlayerpublic boolean isMute()
isMute 在接口中 InterVideoPlayerpublic void onError(int type,
java.lang.String error)
public void onCompletion()
public void onInfo(int what,
int extra)
public void onPrepared()
public int getCurrentPlayerState()
public int getCurrentPlayState()
public long getTcpSpeed()
getTcpSpeed 在接口中 InterVideoPlayerpublic void setSpeed(float speed)
setSpeed 在接口中 InterVideoPlayerpublic float getSpeed()
getSpeed 在接口中 InterVideoPlayerpublic void setUrl(java.lang.String url)
setUrl 在接口中 InterVideoPlayerurl - urlpublic java.lang.String getUrl()
getUrl 在接口中 InterVideoPlayerpublic void setUrl(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> headers)
url - 视频地址headers - 请求头public void setAssetFileDescriptor(android.content.res.AssetFileDescriptor fd)
public void setVolume(float v1,
float v2)
v1 - 左声道音量v2 - 右声道音量public void setProgressManager(ProgressManager progressManager)
public void setLooping(boolean looping)
public void setPlayerFactory(<any> playerFactory)
PlayerFactory实现自己的播放核心public void setRenderViewFactory(SurfaceFactory renderViewFactory)
SurfaceFactory实现自己的RenderViewpublic void startFullScreen()
startFullScreen 在接口中 InterVideoPlayerpublic void stopFullScreen()
stopFullScreen 在接口中 InterVideoPlayerpublic boolean isFullScreen()
isFullScreen 在接口中 InterVideoPlayerpublic void startTinyScreen()
startTinyScreen 在接口中 InterVideoPlayerpublic void stopTinyScreen()
stopTinyScreen 在接口中 InterVideoPlayerpublic boolean isTinyScreen()
isTinyScreen 在接口中 InterVideoPlayerpublic void onVideoSizeChanged(int videoWidth,
int videoHeight)
public void setScreenScaleType(int screenScaleType)
setScreenScaleType 在接口中 InterVideoPlayerpublic void setMirrorRotation(boolean enable)
setMirrorRotation 在接口中 InterVideoPlayerpublic android.graphics.Bitmap doScreenShot()
doScreenShot 在接口中 InterVideoPlayerpublic int[] getVideoSize()
getVideoSize 在接口中 InterVideoPlayerpublic void setRotation(float rotation)
setRotation 在接口中 InterVideoPlayersetRotation 在类中 android.view.Viewrotation - 角度protected void setPlayState(int playState)
protected void setPlayerState(int playerState)
public void addOnStateChangeListener(OnVideoStateListener listener)
public void removeOnStateChangeListener(OnVideoStateListener listener)
public void setOnStateChangeListener(OnVideoStateListener listener)
addOnStateChangeListener(OnVideoStateListener)。public void clearOnStateChangeListeners()
public boolean onBackPressed()
public void setVideoBuilder(VideoPlayerBuilder videoBuilder)