-
- All Implemented Interfaces:
-
com.shuyu.gsyvideoplayer.cache.ICacheManager.ICacheAvailableListener,com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge,tv.danmaku.ijk.media.player.IMediaPlayer.OnBufferingUpdateListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnCompletionListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnErrorListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnInfoListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnPreparedListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnSeekCompleteListener,tv.danmaku.ijk.media.player.IMediaPlayer.OnVideoSizeChangedListener
public abstract class GSYVideoBaseManager implements IMediaPlayer.OnPreparedListener, IMediaPlayer.OnCompletionListener, IMediaPlayer.OnBufferingUpdateListener, IMediaPlayer.OnSeekCompleteListener, IMediaPlayer.OnErrorListener, IMediaPlayer.OnVideoSizeChangedListener, IMediaPlayer.OnInfoListener, ICacheManager.ICacheAvailableListener, GSYVideoViewBridge
基类管理器 GSYVideoViewBridge接口说明可以查阅GSYVideoViewBridge类 Created by guoshuyu on 2018/1/25.
-
-
Field Summary
Fields Modifier and Type Field Description public static StringTAGprotected WeakReference<GSYMediaPlayerListener>listenerprotected WeakReference<GSYMediaPlayerListener>lastListenerprotected List<VideoOptionModel>optionModelListprotected StringplayTagprotected intcurrentVideoWidthprotected intcurrentVideoHeightprotected intlastStateprotected intplayPositionprotected inttimeOutprotected booleanneedMute
-
Method Summary
Modifier and Type Method Description voidsetListener(GSYMediaPlayerListener listener)voidsetLastListener(GSYMediaPlayerListener lastListener)List<VideoOptionModel>getOptionModelList()voidsetOptionModelList(List<VideoOptionModel> optionModelList)设置IJK视频的option StringgetPlayTag()tag和position都是属于标记flag,不参与播放器实际工作,只是用于防止错误等等 voidsetPlayTag(String playTag)intgetCurrentVideoWidth()voidsetCurrentVideoWidth(int currentVideoWidth)intgetCurrentVideoHeight()voidsetCurrentVideoHeight(int currentVideoHeight)intgetLastState()voidsetLastState(int lastState)intgetPlayPosition()voidsetPlayPosition(int playPosition)intgetTimeOut()voidsetTimeOut(int timeOut, boolean needTimeOutOther)是否需要在buffer缓冲时,增加外部超时判断 超时后会走onError接口,播放器通过onPlayError回调出 错误码为 : BUFFER_TIME_OUT_ERROR = -192 由于onError之后执行GSYVideoPlayer的OnError,如果不想触发错误, 可以重载onError,在super之前拦截处理。 public void onError(int what, int extra){ do you want before super and return; super. voidsetNeedMute(boolean needMute)是否需要静音 voidclearAllDefaultCache(Context context)删除默认所有缓存文件 voidclearDefaultCache(Context context, @Nullable() File cacheDir, @Nullable() String url)清除缓存 GSYMediaPlayerListenerlistener()GSYMediaPlayerListenerlastListener()voidsetSpeed(float speed, boolean soundTouch)播放速度修改 voidprepare(String url, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath)开始准备播放 voidprepare(String url, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension)开始准备播放 voidprepare(BufferedInputStream videoBufferedInputStream, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath)开始准备播放 voidprepare(BufferedInputStream videoBufferedInputStream, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension)开始准备播放 voidreleaseMediaPlayer()是否播放器 voidsetDisplay(Surface holder)设置渲染 voidreleaseSurface(Surface holder)voidonPrepared(IMediaPlayer mp)voidonCompletion(IMediaPlayer mp)voidonBufferingUpdate(IMediaPlayer mp, int percent)voidonSeekComplete(IMediaPlayer mp)booleanonError(IMediaPlayer mp, int what, int extra)booleanonInfo(IMediaPlayer mp, int what, int extra)voidonVideoSizeChanged(IMediaPlayer mp, int width, int height, int sar_num, int sar_den)voidonCacheAvailable(File cacheFile, String url, int percentsAvailable)booleanisCacheFile()播放中的url是否已经缓存 booleancachePreview(Context context, File cacheDir, String url)这里只是用于点击时判断是否已经缓存 所以每次直接通过一个CacheManager对象判断即可 longgetNetSpeed()网络速度 voidclearCache(Context context, File cacheDir, String url)清除缓存 intgetBufferedPercentage()针对某些内核,缓冲百分比 voidsetSpeedPlaying(float speed, boolean soundTouch)播放速度修改 IPlayerManagergetPlayer()获取当前播放内核 voidstart()voidstop()voidpause()intgetVideoWidth()intgetVideoHeight()booleanisPlaying()voidseekTo(long time)longgetCurrentPosition()longgetDuration()intgetVideoSarNum()intgetVideoSarDen()intgetRotateInfoFlag()获取Rotate选择的flag,目前只有ijk用到 booleanisSurfaceSupportLockCanvas()Surface是否支持外部lockCanvas,来自定义暂停时的绘制画面exoplayer目前不支持,因为外部lock后,切换surface会导致异常 voidinitContext(Context context)voidenableRawPlay(Context context)打开raw播放支持 booleanisNeedMute()booleanisNeedTimeOutOther()IPlayerManagergetCurPlayerManager()ICacheManagergetCurCacheManager()IPlayerInitSuccessListenergetPlayerPreparedSuccessListener()voidsetPlayerInitSuccessListener(IPlayerInitSuccessListener listener)播放器初始化后接口 -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnPreparedListener
onPrepared -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnCompletionListener
onCompletion -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnBufferingUpdateListener
onBufferingUpdate -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnSeekCompleteListener
onSeekComplete -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnErrorListener
onError -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnVideoSizeChangedListener
onVideoSizeChanged -
Methods inherited from class tv.danmaku.ijk.media.player.IMediaPlayer.OnInfoListener
onInfo -
Methods inherited from class com.shuyu.gsyvideoplayer.cache.ICacheManager.ICacheAvailableListener
onCacheAvailable -
Methods inherited from class com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge
prepare, releaseSurface -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
setListener
void setListener(GSYMediaPlayerListener listener)
-
setLastListener
void setLastListener(GSYMediaPlayerListener lastListener)
-
getOptionModelList
List<VideoOptionModel> getOptionModelList()
-
setOptionModelList
void setOptionModelList(List<VideoOptionModel> optionModelList)
设置IJK视频的option
-
getPlayTag
String getPlayTag()
tag和position都是属于标记flag,不参与播放器实际工作,只是用于防止错误等等
-
setPlayTag
void setPlayTag(String playTag)
-
getCurrentVideoWidth
int getCurrentVideoWidth()
-
setCurrentVideoWidth
void setCurrentVideoWidth(int currentVideoWidth)
-
getCurrentVideoHeight
int getCurrentVideoHeight()
-
setCurrentVideoHeight
void setCurrentVideoHeight(int currentVideoHeight)
-
getLastState
int getLastState()
-
setLastState
void setLastState(int lastState)
-
getPlayPosition
int getPlayPosition()
-
setPlayPosition
void setPlayPosition(int playPosition)
-
getTimeOut
int getTimeOut()
-
setTimeOut
void setTimeOut(int timeOut, boolean needTimeOutOther)
是否需要在buffer缓冲时,增加外部超时判断
超时后会走onError接口,播放器通过onPlayError回调出
错误码为 : BUFFER_TIME_OUT_ERROR = -192
由于onError之后执行GSYVideoPlayer的OnError,如果不想触发错误, 可以重载onError,在super之前拦截处理。
public void onError(int what, int extra){ do you want before super and return; super.onError(what, extra) }
- Parameters:
timeOut- 超时时间,毫秒 默认8000needTimeOutOther- 是否需要延时设置,默认关闭
-
setNeedMute
void setNeedMute(boolean needMute)
是否需要静音
-
clearAllDefaultCache
void clearAllDefaultCache(Context context)
删除默认所有缓存文件
-
clearDefaultCache
void clearDefaultCache(Context context, @Nullable() File cacheDir, @Nullable() String url)
清除缓存
- Parameters:
cacheDir- 缓存目录,为空是使用默认目录url- 指定url缓存,为空时清除所有
-
listener
GSYMediaPlayerListener listener()
-
lastListener
GSYMediaPlayerListener lastListener()
-
setSpeed
void setSpeed(float speed, boolean soundTouch)
播放速度修改
- Parameters:
speed- 播放速度
-
prepare
void prepare(String url, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath)
开始准备播放
- Parameters:
url- 播放urlmapHeadData- 头部信息loop- 是否循环speed- 播放速度cache- 是否缓存cachePath- 缓存目录,可以为空,为空时使用默认
-
prepare
void prepare(String url, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension)
开始准备播放
- Parameters:
url- 播放urlmapHeadData- 头部信息loop- 是否循环speed- 播放速度cache- 是否缓存cachePath- 缓存目录,可以为空,为空时使用默认overrideExtension- 是否需要覆盖拓展类型
-
prepare
void prepare(BufferedInputStream videoBufferedInputStream, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath)
开始准备播放
- Parameters:
videoBufferedInputStream- 视频元数据输入流mapHeadData- 头部信息loop- 是否循环speed- 播放速度cache- 是否缓存cachePath- 缓存目录,可以为空,为空时使用默认
-
prepare
void prepare(BufferedInputStream videoBufferedInputStream, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension)
开始准备播放
- Parameters:
videoBufferedInputStream- 视频元数据输入流mapHeadData- 头部信息loop- 是否循环speed- 播放速度cache- 是否缓存cachePath- 缓存目录,可以为空,为空时使用默认overrideExtension- 是否需要覆盖拓展类型
-
releaseMediaPlayer
void releaseMediaPlayer()
是否播放器
-
setDisplay
void setDisplay(Surface holder)
设置渲染
-
releaseSurface
void releaseSurface(Surface holder)
-
onPrepared
void onPrepared(IMediaPlayer mp)
-
onCompletion
void onCompletion(IMediaPlayer mp)
-
onBufferingUpdate
void onBufferingUpdate(IMediaPlayer mp, int percent)
-
onSeekComplete
void onSeekComplete(IMediaPlayer mp)
-
onError
boolean onError(IMediaPlayer mp, int what, int extra)
-
onInfo
boolean onInfo(IMediaPlayer mp, int what, int extra)
-
onVideoSizeChanged
void onVideoSizeChanged(IMediaPlayer mp, int width, int height, int sar_num, int sar_den)
-
onCacheAvailable
void onCacheAvailable(File cacheFile, String url, int percentsAvailable)
-
isCacheFile
boolean isCacheFile()
播放中的url是否已经缓存
-
cachePreview
boolean cachePreview(Context context, File cacheDir, String url)
这里只是用于点击时判断是否已经缓存 所以每次直接通过一个CacheManager对象判断即可
-
getNetSpeed
long getNetSpeed()
网络速度
-
clearCache
void clearCache(Context context, File cacheDir, String url)
清除缓存
- Parameters:
cacheDir- 缓存目录,为空是使用默认目录url- 指定url缓存,为空时清除所有
-
getBufferedPercentage
int getBufferedPercentage()
针对某些内核,缓冲百分比
-
setSpeedPlaying
void setSpeedPlaying(float speed, boolean soundTouch)
播放速度修改
- Parameters:
speed- 播放速度
-
getPlayer
IPlayerManager getPlayer()
获取当前播放内核
-
start
void start()
-
stop
void stop()
-
pause
void pause()
-
getVideoWidth
int getVideoWidth()
-
getVideoHeight
int getVideoHeight()
-
isPlaying
boolean isPlaying()
-
seekTo
void seekTo(long time)
-
getCurrentPosition
long getCurrentPosition()
-
getDuration
long getDuration()
-
getVideoSarNum
int getVideoSarNum()
-
getVideoSarDen
int getVideoSarDen()
-
getRotateInfoFlag
int getRotateInfoFlag()
获取Rotate选择的flag,目前只有ijk用到
-
isSurfaceSupportLockCanvas
boolean isSurfaceSupportLockCanvas()
Surface是否支持外部lockCanvas,来自定义暂停时的绘制画面exoplayer目前不支持,因为外部lock后,切换surface会导致异常
-
initContext
void initContext(Context context)
-
enableRawPlay
void enableRawPlay(Context context)
打开raw播放支持
-
isNeedMute
boolean isNeedMute()
-
isNeedTimeOutOther
boolean isNeedTimeOutOther()
-
getCurPlayerManager
IPlayerManager getCurPlayerManager()
-
getCurCacheManager
ICacheManager getCurCacheManager()
-
getPlayerPreparedSuccessListener
IPlayerInitSuccessListener getPlayerPreparedSuccessListener()
-
setPlayerInitSuccessListener
void setPlayerInitSuccessListener(IPlayerInitSuccessListener listener)
播放器初始化后接口
-
-
-
-