Package com.qingcloud.vod.player
Class QCPlayerView
- java.lang.Object
-
- android.view.View
-
- android.view.ViewGroup
-
- android.widget.FrameLayout
-
- com.qingcloud.vod.player.QCPlayerView
-
- All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback
,android.view.accessibility.AccessibilityEventSource
,android.view.KeyEvent.Callback
,android.view.ViewManager
,android.view.ViewParent
,IQCBasicMediaPlayerControl
,IQCMediaPlayerControl
public class QCPlayerView extends android.widget.FrameLayout implements IQCBasicMediaPlayerControl, IQCMediaPlayerControl
The type Qc player view.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
QCPlayerView.TinyWindowEventListener
The interface Tiny window event listener.-
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 static int
MODE_FULL_SCREEN
全屏模式static int
MODE_NORMAL
普通模式static int
MODE_TINY_WINDOW
小窗口模式-
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 QCPlayerView(android.content.Context context)
Instantiates a new Qc player view.QCPlayerView(android.content.Context context, android.util.AttributeSet attrs)
Instantiates a new Qc player view.QCPlayerView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr)
Instantiates a new Qc player view.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canPause()
Can pause boolean.boolean
canSeekBackward()
Can seek backward boolean.boolean
canSeekForward()
Can seek forward boolean.void
changeItemUrls(int index)
切换item里的播放地址void
enableCodec(boolean enable)
开启或关闭硬解码void
enterFullScreen()
全屏,将mContainer(内部包含mTextureView和mController)从当前容器中移除,并添加到android.R.content中.void
enterTinyWindow()
进入小窗口模式boolean
exitFullScreen()
退出全屏,移除mTextureView和mController,并添加到非全屏的容器中。 切换竖屏时需要在manifest的activity标签下添加android:configChanges="orientation|keyboardHidden|screenSize"配置, 以避免Activity重新走生命周期.boolean
exitTinyWindow()
退出小窗口模式int
getBufferPercentage()
Gets buffer percentage.int
getCurrentPosition()
Gets current position.int
getDuration()
Gets duration.android.graphics.Bitmap
getFrameScreenShot()
获取当前帧的截图int
getMaxVolume()
获取最大音量float
getSpeed(float speed)
获取播放速度long
getTcpSpeed()
获取网络加载速度int
getVolume()
获取当前音量boolean
isBufferingPaused()
Is buffering paused boolean.boolean
isBufferingPlaying()
Is buffering playing boolean.boolean
isCodecEnable()
是否开启了硬解码boolean
isCompleted()
Is completed boolean.boolean
isError()
Is error boolean.boolean
isFullScreen()
以下3个方法是播放器的模式boolean
isIdle()
以下9个方法是播放器在当前的播放状态boolean
isLockScreen()
当前屏幕是否保持常亮boolean
isNormal()
Is normal boolean.boolean
isPaused()
Is paused boolean.boolean
isPlaying()
Is playing boolean.boolean
isPrepared()
Is prepared boolean.boolean
isPreparing()
Is preparing boolean.boolean
isTinyWindow()
Is tiny window boolean.void
lockScreen()
锁定当前屏幕并保持常亮void
pause()
Pause.void
play()
Play.int
playerItemPlayIndex()
获取item里的正在播放的索引java.util.List<QCPlayerURL>
playerItemUrls()
获取item里的地址列表void
playWithItem(QCPlayerItem item)
Play with item.void
playWithUrl(java.lang.String url)
Play with url.void
release(boolean cleartargetstate)
Release.void
restart()
重新播放,播放器被暂停、播放错误、播放完成后,需要调用此方法重新播放void
seekTo(long ms)
Seek to.void
setMediaController(IQCMediaController controller)
Sets media controller.void
setOnTinyWindowEventListener(QCPlayerView.TinyWindowEventListener l)
Register a callback to monitor FloatWindow Eventvoid
setSpeed(float speed)
设置播放速度,目前只有IjkPlayer有效果,原生MediaPlayer暂不支持void
setTitle(java.lang.String title)
Sets title.void
setVolume(int volume)
设置音量void
start(long position)
从指定的位置开始播放void
unlockScreen()
解锁当前屏幕常亮状态-
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, 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, 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, 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, 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, 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, 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, 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
-
MODE_NORMAL
public static final int MODE_NORMAL
普通模式- See Also:
- Constant Field Values
-
MODE_FULL_SCREEN
public static final int MODE_FULL_SCREEN
全屏模式- See Also:
- Constant Field Values
-
MODE_TINY_WINDOW
public static final int MODE_TINY_WINDOW
小窗口模式- See Also:
- Constant Field Values
-
-
Constructor Detail
-
QCPlayerView
public QCPlayerView(android.content.Context context)
Instantiates a new Qc player view.- Parameters:
context
- the context
-
QCPlayerView
public QCPlayerView(android.content.Context context, android.util.AttributeSet attrs)
Instantiates a new Qc player view.- Parameters:
context
- the contextattrs
- the attrs
-
QCPlayerView
public QCPlayerView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr)
Instantiates a new Qc player view.- Parameters:
context
- the contextattrs
- the attrsdefStyleAttr
- the def style attr
-
-
Method Detail
-
playWithUrl
public void playWithUrl(java.lang.String url)
Play with url.- Parameters:
url
- the url
-
playWithItem
public void playWithItem(QCPlayerItem item)
Play with item.- Parameters:
item
- the item
-
setMediaController
public void setMediaController(@Nullable IQCMediaController controller)
Sets media controller.- Parameters:
controller
- the controller
-
release
public void release(boolean cleartargetstate)
Release.- Parameters:
cleartargetstate
- the cleartargetstate
-
play
public void play()
Description copied from interface:IQCBasicMediaPlayerControl
Play.- Specified by:
play
in interfaceIQCBasicMediaPlayerControl
-
pause
public void pause()
Description copied from interface:IQCBasicMediaPlayerControl
Pause.- Specified by:
pause
in interfaceIQCBasicMediaPlayerControl
-
getDuration
public int getDuration()
Description copied from interface:IQCBasicMediaPlayerControl
Gets duration.- Specified by:
getDuration
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the duration
-
getCurrentPosition
public int getCurrentPosition()
Description copied from interface:IQCBasicMediaPlayerControl
Gets current position.- Specified by:
getCurrentPosition
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the current position
-
seekTo
public void seekTo(long ms)
Description copied from interface:IQCBasicMediaPlayerControl
Seek to.- Specified by:
seekTo
in interfaceIQCBasicMediaPlayerControl
- Parameters:
ms
- the ms
-
isIdle
public boolean isIdle()
Description copied from interface:IQCBasicMediaPlayerControl
以下9个方法是播放器在当前的播放状态- Specified by:
isIdle
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isPreparing
public boolean isPreparing()
Description copied from interface:IQCBasicMediaPlayerControl
Is preparing boolean.- Specified by:
isPreparing
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isPrepared
public boolean isPrepared()
Description copied from interface:IQCBasicMediaPlayerControl
Is prepared boolean.- Specified by:
isPrepared
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isBufferingPlaying
public boolean isBufferingPlaying()
Description copied from interface:IQCBasicMediaPlayerControl
Is buffering playing boolean.- Specified by:
isBufferingPlaying
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isBufferingPaused
public boolean isBufferingPaused()
Description copied from interface:IQCBasicMediaPlayerControl
Is buffering paused boolean.- Specified by:
isBufferingPaused
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isPlaying
public boolean isPlaying()
Description copied from interface:IQCBasicMediaPlayerControl
Is playing boolean.- Specified by:
isPlaying
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isPaused
public boolean isPaused()
Description copied from interface:IQCBasicMediaPlayerControl
Is paused boolean.- Specified by:
isPaused
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isError
public boolean isError()
Description copied from interface:IQCBasicMediaPlayerControl
Is error boolean.- Specified by:
isError
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
isCompleted
public boolean isCompleted()
Description copied from interface:IQCBasicMediaPlayerControl
Is completed boolean.- Specified by:
isCompleted
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
getBufferPercentage
public int getBufferPercentage()
Description copied from interface:IQCBasicMediaPlayerControl
Gets buffer percentage.- Specified by:
getBufferPercentage
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the buffer percentage
-
canPause
public boolean canPause()
Description copied from interface:IQCBasicMediaPlayerControl
Can pause boolean.- Specified by:
canPause
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
canSeekBackward
public boolean canSeekBackward()
Description copied from interface:IQCBasicMediaPlayerControl
Can seek backward boolean.- Specified by:
canSeekBackward
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
canSeekForward
public boolean canSeekForward()
Description copied from interface:IQCBasicMediaPlayerControl
Can seek forward boolean.- Specified by:
canSeekForward
in interfaceIQCBasicMediaPlayerControl
- Returns:
- the boolean
-
start
public void start(long position)
Description copied from interface:IQCBasicMediaPlayerControl
从指定的位置开始播放- Specified by:
start
in interfaceIQCBasicMediaPlayerControl
- Parameters:
position
- 播放位置
-
restart
public void restart()
Description copied from interface:IQCBasicMediaPlayerControl
重新播放,播放器被暂停、播放错误、播放完成后,需要调用此方法重新播放- Specified by:
restart
in interfaceIQCBasicMediaPlayerControl
-
setVolume
public void setVolume(int volume)
Description copied from interface:IQCMediaPlayerControl
设置音量- Specified by:
setVolume
in interfaceIQCMediaPlayerControl
- Parameters:
volume
- 音量值
-
setSpeed
public void setSpeed(float speed)
Description copied from interface:IQCMediaPlayerControl
设置播放速度,目前只有IjkPlayer有效果,原生MediaPlayer暂不支持- Specified by:
setSpeed
in interfaceIQCMediaPlayerControl
- Parameters:
speed
- 播放速度
-
isFullScreen
public boolean isFullScreen()
Description copied from interface:IQCMediaPlayerControl
以下3个方法是播放器的模式- Specified by:
isFullScreen
in interfaceIQCMediaPlayerControl
- Returns:
- the boolean
-
isTinyWindow
public boolean isTinyWindow()
Description copied from interface:IQCMediaPlayerControl
Is tiny window boolean.- Specified by:
isTinyWindow
in interfaceIQCMediaPlayerControl
- Returns:
- the boolean
-
isNormal
public boolean isNormal()
Description copied from interface:IQCMediaPlayerControl
Is normal boolean.- Specified by:
isNormal
in interfaceIQCMediaPlayerControl
- Returns:
- the boolean
-
getMaxVolume
public int getMaxVolume()
Description copied from interface:IQCMediaPlayerControl
获取最大音量- Specified by:
getMaxVolume
in interfaceIQCMediaPlayerControl
- Returns:
- 最大音量值 max volume
-
getVolume
public int getVolume()
Description copied from interface:IQCMediaPlayerControl
获取当前音量- Specified by:
getVolume
in interfaceIQCMediaPlayerControl
- Returns:
- 当前音量值 volume
-
getFrameScreenShot
public android.graphics.Bitmap getFrameScreenShot()
Description copied from interface:IQCMediaPlayerControl
获取当前帧的截图- Specified by:
getFrameScreenShot
in interfaceIQCMediaPlayerControl
- Returns:
- 当前帧截图 frame screen shot
-
getSpeed
public float getSpeed(float speed)
Description copied from interface:IQCMediaPlayerControl
获取播放速度- Specified by:
getSpeed
in interfaceIQCMediaPlayerControl
- Parameters:
speed
- 播放速度- Returns:
- 播放速度 speed
-
getTcpSpeed
public long getTcpSpeed()
Description copied from interface:IQCMediaPlayerControl
获取网络加载速度- Specified by:
getTcpSpeed
in interfaceIQCMediaPlayerControl
- Returns:
- 网络加载速度 tcp speed
-
lockScreen
public void lockScreen()
Description copied from interface:IQCMediaPlayerControl
锁定当前屏幕并保持常亮- Specified by:
lockScreen
in interfaceIQCMediaPlayerControl
-
unlockScreen
public void unlockScreen()
Description copied from interface:IQCMediaPlayerControl
解锁当前屏幕常亮状态- Specified by:
unlockScreen
in interfaceIQCMediaPlayerControl
-
isLockScreen
public boolean isLockScreen()
Description copied from interface:IQCMediaPlayerControl
当前屏幕是否保持常亮- Specified by:
isLockScreen
in interfaceIQCMediaPlayerControl
- Returns:
- 当前屏幕是否保持常亮 boolean
-
enableCodec
public void enableCodec(boolean enable)
Description copied from interface:IQCMediaPlayerControl
开启或关闭硬解码- Specified by:
enableCodec
in interfaceIQCMediaPlayerControl
- Parameters:
enable
- 是否开启
-
isCodecEnable
public boolean isCodecEnable()
Description copied from interface:IQCMediaPlayerControl
是否开启了硬解码- Specified by:
isCodecEnable
in interfaceIQCMediaPlayerControl
- Returns:
- 是否开启了硬解码 boolean
-
changeItemUrls
public void changeItemUrls(int index)
Description copied from interface:IQCMediaPlayerControl
切换item里的播放地址- Specified by:
changeItemUrls
in interfaceIQCMediaPlayerControl
- Parameters:
index
- 地址索引
-
playerItemUrls
public java.util.List<QCPlayerURL> playerItemUrls()
Description copied from interface:IQCMediaPlayerControl
获取item里的地址列表- Specified by:
playerItemUrls
in interfaceIQCMediaPlayerControl
- Returns:
- item里的地址列表 list
-
playerItemPlayIndex
public int playerItemPlayIndex()
Description copied from interface:IQCMediaPlayerControl
获取item里的正在播放的索引- Specified by:
playerItemPlayIndex
in interfaceIQCMediaPlayerControl
- Returns:
- item里的地址列表 int
-
enterFullScreen
public void enterFullScreen()
全屏,将mContainer(内部包含mTextureView和mController)从当前容器中移除,并添加到android.R.content中. 切换横屏时需要在manifest的activity标签下添加android:configChanges="orientation|keyboardHidden|screenSize"配置, 以避免Activity重新走生命周期- Specified by:
enterFullScreen
in interfaceIQCMediaPlayerControl
-
exitFullScreen
public boolean exitFullScreen()
退出全屏,移除mTextureView和mController,并添加到非全屏的容器中。 切换竖屏时需要在manifest的activity标签下添加android:configChanges="orientation|keyboardHidden|screenSize"配置, 以避免Activity重新走生命周期.- Specified by:
exitFullScreen
in interfaceIQCMediaPlayerControl
- Returns:
- true退出全屏.
-
enterTinyWindow
public void enterTinyWindow()
Description copied from interface:IQCMediaPlayerControl
进入小窗口模式- Specified by:
enterTinyWindow
in interfaceIQCMediaPlayerControl
-
exitTinyWindow
public boolean exitTinyWindow()
Description copied from interface:IQCMediaPlayerControl
退出小窗口模式- Specified by:
exitTinyWindow
in interfaceIQCMediaPlayerControl
- Returns:
- true 退出小窗口
-
setOnTinyWindowEventListener
public void setOnTinyWindowEventListener(QCPlayerView.TinyWindowEventListener l)
Register a callback to monitor FloatWindow Event- Parameters:
l
- The callback that will be run
-
setTitle
public void setTitle(java.lang.String title)
Sets title.- Parameters:
title
- the title
-
-