WlMediaUtil 是一个获取 音视频基础信息
和获取 缩略图
SDK,其使用方法如下:
WlMediaUtil
构造函数不依赖上下文,很方便创建使用,当创建了 WlMediaUtil
实例后,都需要调用 release
释放资源。
public WlMediaUtil()
带参构造函数用于动态加载动态库的场景,可在 WlOnLoadLibraryListener.onLoadedLibrary()
方法中加载动态库,返回 true
后,播放器将不再走自身加载动态库逻辑。
public WlMediaUtil(WlOnLoadLibraryListener onLoadLibraryListener)
有些网络流,如 rtsp
流需要设置使用 tcp
或 udp
网络模式才能播放,设置方式如下:
public void setOptions(String key, String value)
public void clearOptions()
设置访问网络资源超时时长,默认 15s。
public void setTimeOut(double timeOut)
public void setSource(String source)
/**
* 打开 数据源
*
* @return 0:success
* -1: 超时
* -2: 错误
*/
public int openSource()
public WlTrackInfoBean[] getAudioTracks()
public WlTrackInfoBean[] getVideoTracks()
public WlTrackInfoBean[] getSubtitleTracks()
/**
* 获取对应时间截图
*
* @param time 如果 time > 0 , 就会取time对应的时间值,如果 time = 0,会按照顺序依次读取截图
* @param keyFrame 表示是不是只取关键帧(关键帧速度快)
* @return
*/
public Bitmap getVideoFrame(double time, boolean keyFrame)
/**
* 获取对应时间截图
*
* @param time 如果 time > 0 , 就会取time对应的时间值,如果 time = 0,会按照顺序依次读取截图
* @param keyFrame 表示是不是只取关键帧(关键帧速度快)
* @param scaleWidth 缩放宽
* @param scaleHeight 缩放高
* @return
*/
public Bitmap getVideoFrame(double time, boolean keyFrame, int scaleWidth, int scaleHeight)
/**
* 获取对应时间截图
*
* @param trackIndex 获取截图的视频track
* @param time 如果 time > 0 , 就会取time对应的时间值,如果 time = 0,会按照顺序依次读取截图
* @param keyFrame 表示是不是只取关键帧(关键帧速度快)
* @param scaleWidth 缩放宽
* @param scaleHeight 缩放高
* @return
*/
public Bitmap getVideoFrame(int trackIndex, double time, boolean keyFrame, int scaleWidth, int scaleHeight)ß
只要创建了实例,就要调用release销毁。
public void release()
WlMediaUtil
中 openSource
、getVideoFrame
都是线程阻塞
方法,需要在子线程中调用
,才不会阻塞主线程
。