1. 全局设置(PlayerManager)

  • 初始化Appid
public static void init(String appId);
  • 获取预加载实例
public static IMediaPreloader getMediaPreLoader();
  • 获取播放器实例
public static ICosPlayer newPlayer();
  • 设置自定义UserAgent
public static void setUserAgent(String userAgent);
  • 设置视频缓存路径
public static void initCachePath(String cachePath);
  • 设置视频最大缓存空间
//参数单位为M
public static void setCacheLimit(int size);
  • 清理视频缓存
public static void clearAllCache();
  • 开启调试模式
/**
 * 开启调试模式
 * @param console 打开控制台日志,false:表示关闭
 * @param dir 打开日志文件写入,null:表示关闭
 */
public static void openDebugLog(boolean console, String dir) {
  • 开启日志分析
//消耗少量流量采集播放器的错误日志和卡顿情况,进一步帮助您提升播放器体验
public static void openLogAnalyze(boolean toggle);

2. 预加载 (IMediaPreloader)

  • 清空所有预加载任务
void clearAllTask();
  • 添加单个预加载任务
boolean addTask(String url);
  • 指定Key添加单个预加载任务
boolean addTask(String url, String key);
  • 添加单个预加载任务
/**
 * 添加一个预加载任务。预加载大小和时长同时满足,即预加载完成
 * @param url 预加载任务url
 * @param key 预加载任务key
 * @param preloadSize 预加载大小 单位毫秒,默认2000
 * @param preloadTime 预加载时长 单位字节,默认300*1024
 * @return true:添加成功 false:添加失败
 */
boolean addTask(String url, String key, int preloadSize, int preloadTime);
  • 添加单个预加载任务
/**
 * 添加一个预加载任务。预加载大小和时长同时满足,即预加载完成
 * @param url 预加载任务url
 * @param preloadSize 预加载大小 单位毫秒,默认2000
 * @param preloadTime 预加载时长 单位字节,默认300*1024
 * @return true:添加成功 false:添加失败
 */
boolean addTask(String url, int preloadSize, int preloadTime);
  • 添加批量预加载任务
void addTask(List<String> urls);
  • 添加批量预加载任务
void addTask(List<String> urls, List<String> keys);
  • 取消单个预加载任务,根据addTask(String url, String key)方法中传入的key
void clearTaskByKey(String key);
  • 取消单个预加载任务,根据addTask(String url)方法中传入的url
void clearTaskByUrl(String url);
  • 判断是否已经完成预加载
boolean isTaskCachedByKey(String key);
  • 判断是否已经完成预加载
boolean isTakCachedByUrl(String url);
  • 判断是否cache命中
int isCached(Uri uri);

3. 播放器(ICosPlayer)

3.0.1. 回调

  • 准备完成回调
void setOnPreparedListener(ICosPlayer.OnPreparedListener listener);
  • 错误回调
void setOnErrorListener(ICosPlayer.OnErrorListener listener);
  • 播放完成回调
void setOnCompletionListener(ICosPlayer.OnCompletionListener listener);
  • 播放状态回调(缓冲、播放)
void setOnStateChangedListener(ICosPlayer.OnStateChangedListener listener);
  • 设置视频宽高变化监听
void setOnVideoSizeChangedListener(OnVideoSizeChangedListener listener);
  • 首帧渲染监听
void setOnFirstFrameInfoListener(OnFirstFrameInfoListener listener);
  • 设置缓冲更新监听
void setOnBufferingUpdateListener(OnBufferingUpdateListener listener);
  • 设置seek完成监听
void setOnSeekCompleteListener(OnSeekCompleteListener listener);
/**
     * 1.1.9 版本可用
     * 设置播放的时候缓冲状态改变监听
     */
    void setOnBufferingStateChangeListener(OnBufferingStateChangeListener listener);
  • 设置分辨率变化监听
    void setOnVideoResolutionChangedListener(OnVideoResolutionChangedListener listener);

3.0.2. 播放控制

  • 准备并播放
void prepare(String playUrl);

//mediaCodec:表示是否使用硬解码
void prepare(String playUrl, boolean useMediaCodec);

//playKey与预加载时设置的单独key相对应,默认为url的path
void prepare(String playUrl, String playKey);

/**
     * @param playUrl       播放地址,如/sdcard/aa.mp4、https://www.baidu.com/fuck.mp4
     * @param playKey       视频唯一key,与预加载key对应,默认使用url的path
     * @param useMediaCodec 本次播放是否使用硬解码,默认为true
     * @param optionItems   可添加附加配置项,除特殊需求,不建议配置,用默认配置即可
     */
void prepare(String playUrl, String playKey, boolean useMediaCodec, PlayerExtraOptionItem... optionItems);
  • 自动播放
void setPlayWhenReady(boolean playWhenReady)
  • 恢复播放
void resume();
  • 暂停
void pause();
  • 停止
void release();
  • 指定位置播放
//单位毫秒
void seekTo(long position);
  • 循环播放 (默认不循环播放)
public void setLoopPlay(boolean loopPlay);
  • 获取播放的当前时间,单位为毫秒
long getCurrentPosition();
  • 获取视频的总时长,单位为毫秒
long getDuration();
  • 是否正在播放
boolean isPlaying();
  • 设置静音
void setMuteMode(boolean mute);
  • 设置音量大小
//取值范围[0,1f]
void setVolume(float vol);

4. VideoView

  • 获取封面View
public ImageView getCoverView()
  • 播放视频
public void playVideo(String videoUrl);

public void playVideo(String videoUrl, String playKey);

public void playVideo(String videoUrl, boolean useMediaCodec);

public void playVideo(String videoUrl, String playKey, boolean useMediaCodec);
  • 停止视频
public void releaseVideo();
  • 暂停
public void pause()
  • 恢复
public void resume()
  • 是否正在播放
public boolean isPlaying();
  • 跳转指定位置播放
public void seekTo(int positionMs)
  • 循环播放 (默认循环播放)
public void setLoopPlay(boolean loopPlay);
  • 状态变化回调
public void setOnStateChangedListener(CosmosPlayer.OnStateChangedListener listener)
  • 裁切模式
/**
* 设置裁切类型
* @param scaleType
* {@link ScalableType#CENTER_CROP}: 以短边为参考,将视频等比例缩放以短边也填充View全部,其余裁切 
* {@link ScalableType#FIT_CENTER}: 以长边为参考,长边填充View全部,短边居中显示(短边的两边会留下空白)
* {@link ScalableType#FIT_XY}: 不做参考,直接将视频宽高,填充View宽高。如果View宽高比例与视频宽高比例不一致,会出现视频变形的情况
*/
public void setScaleType(@ScalableType.ScalableTypeAnnotations int scaleType);
Copyright © momo 2019 all right reserved,powered by Gitbook修订时间: 2019-07-18 16:00:37

results matching ""

    No results matching ""