public abstract class GSYVideoBaseManager extends java.lang.Object implements GSYVideoViewBridge
| 限定符和类型 | 字段和说明 |
|---|---|
protected static int |
BUFFER_TIME_OUT_ERROR |
protected int |
bufferPoint
缓冲比例
|
protected ICacheManager |
cacheManager
缓存管理
|
protected android.content.Context |
context |
protected int |
currentVideoHeight
当前播放的视屏的高
|
protected int |
currentVideoWidth
当前播放的视频宽的高
|
protected static int |
HANDLER_PREPARE |
protected static int |
HANDLER_RELEASE |
protected static int |
HANDLER_RELEASE_SURFACE |
protected static int |
HANDLER_SETDISPLAY |
protected java.lang.ref.WeakReference<GSYMediaPlayerListener> |
lastListener |
protected int |
lastState
当前视频的最后状态
|
protected java.lang.ref.WeakReference<GSYMediaPlayerListener> |
listener |
protected android.os.Handler |
mainThreadHandler |
protected com.shuyu.gsyvideoplayer.GSYVideoBaseManager.MediaHandler |
mMediaHandler |
protected IPlayerInitSuccessListener |
mPlayerInitSuccessListener |
protected boolean |
needMute
是否需要静音
|
protected boolean |
needTimeOutOther
是否需要外部超时判断
|
protected java.util.List<VideoOptionModel> |
optionModelList
配置ijk option
|
protected IPlayerManager |
playerManager
播放内核管理
|
protected int |
playPosition
播放的tag,防止错位置,因为普通的url也可能重复
|
protected java.lang.String |
playTag
播放的tag,防止错位置,因为普通的url也可能重复
|
static java.lang.String |
TAG |
protected int |
timeOut
播放超时
|
| 构造器和说明 |
|---|
GSYVideoBaseManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
cachePreview(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
这里只是用于点击时判断是否已经缓存
所以每次直接通过一个CacheManager对象判断即可
|
protected void |
cancelTimeOutBuffer()
取消 十秒的定时器进行 缓存操作
|
void |
clearAllDefaultCache(android.content.Context context)
删除默认所有缓存文件
|
void |
clearCache(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
清除缓存
|
void |
clearDefaultCache(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
清除缓存
|
void |
enableRawPlay(android.content.Context context)
打开raw播放支持
|
int |
getBufferedPercentage()
针对某些内核,缓冲百分比
|
protected ICacheManager |
getCacheManager() |
ICacheManager |
getCurCacheManager() |
IPlayerManager |
getCurPlayerManager() |
long |
getCurrentPosition() |
int |
getCurrentVideoHeight() |
int |
getCurrentVideoWidth() |
long |
getDuration() |
int |
getLastState() |
long |
getNetSpeed()
网络速度
|
java.util.List<VideoOptionModel> |
getOptionModelList() |
IPlayerManager |
getPlayer()
获取当前播放内核
|
IPlayerInitSuccessListener |
getPlayerPreparedSuccessListener() |
protected IPlayerManager |
getPlayManager() |
int |
getPlayPosition() |
java.lang.String |
getPlayTag()
tag和position都是属于标记flag,不参与播放器实际工作,只是用于防止错误等等
|
int |
getRotateInfoFlag()
获取Rotate选择的flag,目前只有ijk用到
|
int |
getTimeOut() |
int |
getVideoHeight() |
int |
getVideoSarDen() |
int |
getVideoSarNum() |
int |
getVideoWidth() |
protected void |
init() |
void |
initContext(android.content.Context context) |
boolean |
isCacheFile()
播放中的url是否已经缓存
|
boolean |
isNeedMute() |
boolean |
isNeedTimeOutOther() |
boolean |
isPlaying() |
boolean |
isSurfaceSupportLockCanvas()
Surface是否支持外部lockCanvas,来自定义暂停时的绘制画面
exoplayer目前不支持,因为外部lock后,切换surface会导致异常
|
GSYMediaPlayerListener |
lastListener() |
GSYMediaPlayerListener |
listener() |
void |
onBufferingUpdate(IMediaPlayer mp,
int percent) |
void |
onCacheAvailable(java.io.File cacheFile,
java.lang.String url,
int percentsAvailable) |
void |
onCompletion(IMediaPlayer mp) |
boolean |
onError(IMediaPlayer mp,
int what,
int extra) |
boolean |
onInfo(IMediaPlayer mp,
int what,
int extra) |
void |
onPrepared(IMediaPlayer mp) |
void |
onSeekComplete(IMediaPlayer mp) |
void |
onVideoSizeChanged(IMediaPlayer mp,
int width,
int height,
int sar_num,
int sar_den) |
void |
pause() |
void |
prepare(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> mapHeadData,
boolean loop,
float speed,
boolean cache,
java.io.File cachePath)
开始准备播放
|
void |
prepare(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> mapHeadData,
boolean loop,
float speed,
boolean cache,
java.io.File cachePath,
java.lang.String overrideExtension)
开始准备播放
|
void |
releaseMediaPlayer()
是否播放器
|
void |
releaseSurface(android.view.Surface holder) |
void |
seekTo(long time) |
protected void |
sendMessage(android.os.Message message) |
void |
setCurrentVideoHeight(int currentVideoHeight) |
void |
setCurrentVideoWidth(int currentVideoWidth) |
void |
setDisplay(android.view.Surface holder)
设置渲染
|
void |
setLastListener(GSYMediaPlayerListener lastListener) |
void |
setLastState(int lastState) |
void |
setListener(GSYMediaPlayerListener listener) |
void |
setNeedMute(boolean needMute)
是否需要静音
|
void |
setOptionModelList(java.util.List<VideoOptionModel> optionModelList)
设置IJK视频的option
|
void |
setPlayerInitSuccessListener(IPlayerInitSuccessListener listener)
播放器初始化后接口
|
void |
setPlayPosition(int playPosition) |
void |
setPlayTag(java.lang.String playTag) |
void |
setSpeed(float speed,
boolean soundTouch)
播放速度修改
|
void |
setSpeedPlaying(float speed,
boolean soundTouch)
播放速度修改
|
void |
setTimeOut(int timeOut,
boolean needTimeOutOther)
是否需要在buffer缓冲时,增加外部超时判断
超时后会走onError接口,播放器通过onPlayError回调出
错误码为 : BUFFER_TIME_OUT_ERROR = -192
由于onError之后执行GSYVideoPlayer的OnError,如果不想触发错误,
可以重载onError,在super之前拦截处理。
|
void |
start() |
protected void |
startTimeOutBuffer()
启动十秒的定时器进行 缓存操作
|
void |
stop() |
public static java.lang.String TAG
protected static final int HANDLER_PREPARE
protected static final int HANDLER_SETDISPLAY
protected static final int HANDLER_RELEASE
protected static final int HANDLER_RELEASE_SURFACE
protected static final int BUFFER_TIME_OUT_ERROR
protected android.content.Context context
protected com.shuyu.gsyvideoplayer.GSYVideoBaseManager.MediaHandler mMediaHandler
protected android.os.Handler mainThreadHandler
protected java.lang.ref.WeakReference<GSYMediaPlayerListener> listener
protected java.lang.ref.WeakReference<GSYMediaPlayerListener> lastListener
protected IPlayerInitSuccessListener mPlayerInitSuccessListener
protected java.util.List<VideoOptionModel> optionModelList
protected java.lang.String playTag
protected IPlayerManager playerManager
protected ICacheManager cacheManager
protected int currentVideoWidth
protected int currentVideoHeight
protected int lastState
protected int playPosition
protected int bufferPoint
protected int timeOut
protected boolean needMute
protected boolean needTimeOutOther
public void clearAllDefaultCache(android.content.Context context)
public void clearDefaultCache(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
cacheDir - 缓存目录,为空是使用默认目录url - 指定url缓存,为空时清除所有protected void init()
protected IPlayerManager getPlayManager()
protected ICacheManager getCacheManager()
public GSYMediaPlayerListener listener()
listener 在接口中 GSYVideoViewBridgepublic GSYMediaPlayerListener lastListener()
lastListener 在接口中 GSYVideoViewBridgepublic void setListener(GSYMediaPlayerListener listener)
setListener 在接口中 GSYVideoViewBridgepublic void setLastListener(GSYMediaPlayerListener lastListener)
setLastListener 在接口中 GSYVideoViewBridgepublic void setSpeed(float speed,
boolean soundTouch)
GSYVideoViewBridgesetSpeed 在接口中 GSYVideoViewBridgespeed - 播放速度public void prepare(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> mapHeadData,
boolean loop,
float speed,
boolean cache,
java.io.File cachePath)
GSYVideoViewBridgeprepare 在接口中 GSYVideoViewBridgeurl - 播放urlmapHeadData - 头部信息loop - 是否循环speed - 播放速度cache - 是否缓存cachePath - 缓存目录,可以为空,为空时使用默认public void prepare(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> mapHeadData,
boolean loop,
float speed,
boolean cache,
java.io.File cachePath,
java.lang.String overrideExtension)
GSYVideoViewBridgeprepare 在接口中 GSYVideoViewBridgeurl - 播放urlmapHeadData - 头部信息loop - 是否循环speed - 播放速度cache - 是否缓存cachePath - 缓存目录,可以为空,为空时使用默认overrideExtension - 是否需要覆盖拓展类型public void releaseMediaPlayer()
GSYVideoViewBridgereleaseMediaPlayer 在接口中 GSYVideoViewBridgepublic void setDisplay(android.view.Surface holder)
GSYVideoViewBridgesetDisplay 在接口中 GSYVideoViewBridgepublic void releaseSurface(android.view.Surface holder)
releaseSurface 在接口中 GSYVideoViewBridgepublic void onPrepared(IMediaPlayer mp)
public void onCompletion(IMediaPlayer mp)
public void onBufferingUpdate(IMediaPlayer mp,
int percent)
public void onSeekComplete(IMediaPlayer mp)
public boolean onError(IMediaPlayer mp,
int what,
int extra)
public boolean onInfo(IMediaPlayer mp,
int what,
int extra)
public void onVideoSizeChanged(IMediaPlayer mp,
int width,
int height,
int sar_num,
int sar_den)
public void onCacheAvailable(java.io.File cacheFile,
java.lang.String url,
int percentsAvailable)
public int getLastState()
getLastState 在接口中 GSYVideoViewBridgepublic void setLastState(int lastState)
setLastState 在接口中 GSYVideoViewBridgepublic int getCurrentVideoWidth()
getCurrentVideoWidth 在接口中 GSYVideoViewBridgepublic int getCurrentVideoHeight()
getCurrentVideoHeight 在接口中 GSYVideoViewBridgepublic void setCurrentVideoHeight(int currentVideoHeight)
setCurrentVideoHeight 在接口中 GSYVideoViewBridgepublic void setCurrentVideoWidth(int currentVideoWidth)
setCurrentVideoWidth 在接口中 GSYVideoViewBridgepublic java.lang.String getPlayTag()
GSYVideoViewBridgegetPlayTag 在接口中 GSYVideoViewBridgepublic void setPlayTag(java.lang.String playTag)
setPlayTag 在接口中 GSYVideoViewBridgepublic int getPlayPosition()
getPlayPosition 在接口中 GSYVideoViewBridgepublic void setPlayPosition(int playPosition)
setPlayPosition 在接口中 GSYVideoViewBridgepublic boolean isCacheFile()
GSYVideoViewBridgeisCacheFile 在接口中 GSYVideoViewBridgepublic boolean cachePreview(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
cachePreview 在接口中 GSYVideoViewBridgecacheDir - 缓存目录,为空是使用默认目录url - 指定url缓存public long getNetSpeed()
GSYVideoViewBridgegetNetSpeed 在接口中 GSYVideoViewBridgepublic void clearCache(android.content.Context context,
java.io.File cacheDir,
java.lang.String url)
GSYVideoViewBridgeclearCache 在接口中 GSYVideoViewBridgecacheDir - 缓存目录,为空是使用默认目录url - 指定url缓存,为空时清除所有public int getBufferedPercentage()
GSYVideoViewBridgegetBufferedPercentage 在接口中 GSYVideoViewBridgepublic void setSpeedPlaying(float speed,
boolean soundTouch)
GSYVideoViewBridgesetSpeedPlaying 在接口中 GSYVideoViewBridgespeed - 播放速度public IPlayerManager getPlayer()
GSYVideoViewBridgegetPlayer 在接口中 GSYVideoViewBridgepublic void start()
start 在接口中 GSYVideoViewBridgepublic void stop()
stop 在接口中 GSYVideoViewBridgepublic void pause()
pause 在接口中 GSYVideoViewBridgepublic int getVideoWidth()
getVideoWidth 在接口中 GSYVideoViewBridgepublic int getVideoHeight()
getVideoHeight 在接口中 GSYVideoViewBridgepublic boolean isPlaying()
isPlaying 在接口中 GSYVideoViewBridgepublic void seekTo(long time)
seekTo 在接口中 GSYVideoViewBridgepublic long getCurrentPosition()
getCurrentPosition 在接口中 GSYVideoViewBridgepublic long getDuration()
getDuration 在接口中 GSYVideoViewBridgepublic int getVideoSarNum()
getVideoSarNum 在接口中 GSYVideoViewBridgepublic int getVideoSarDen()
getVideoSarDen 在接口中 GSYVideoViewBridgepublic int getRotateInfoFlag()
GSYVideoViewBridgegetRotateInfoFlag 在接口中 GSYVideoViewBridgepublic boolean isSurfaceSupportLockCanvas()
GSYVideoViewBridgeisSurfaceSupportLockCanvas 在接口中 GSYVideoViewBridgeprotected void sendMessage(android.os.Message message)
protected void startTimeOutBuffer()
protected void cancelTimeOutBuffer()
public void initContext(android.content.Context context)
public void enableRawPlay(android.content.Context context)
context - public java.util.List<VideoOptionModel> getOptionModelList()
public void setOptionModelList(java.util.List<VideoOptionModel> optionModelList)
public boolean isNeedMute()
public void setNeedMute(boolean needMute)
public int getTimeOut()
public boolean isNeedTimeOutOther()
public void setTimeOut(int timeOut,
boolean needTimeOutOther)
超时后会走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) }
timeOut - 超时时间,毫秒 默认8000needTimeOutOther - 是否需要延时设置,默认关闭public IPlayerManager getCurPlayerManager()
public ICacheManager getCurCacheManager()
public IPlayerInitSuccessListener getPlayerPreparedSuccessListener()
public void setPlayerInitSuccessListener(IPlayerInitSuccessListener listener)