logologo
售前咨询
点播云
产品简介
购买指南
快速入门
控制台指南
服务端API
SDK文档
播放器SDK
Web端播放器
Android端播放器
iOS端播放器
鸿蒙端播放器
上传SDK
服务端SDK
相关协议
文档中心
SDK文档播放器SDKAndroid端播放器SDK API

SDK API


IKSMediaPlayer

成员方法

prepareAsync

    /**
* 异步准备播放器,prepare完成后会触发setOnPreparedListener的onPrepared回调
*
*/
void prepareAsync();


setSurface

    /**
* 设置渲染目标
*
* @param surface
*/
void setSurface(Surface surface);


isPlaying

    /**
* 检查当前播放器是否处于播放状态
*
* @return true or false
*/
boolean isPlaying();


getCurrentPosition

    /**
* 获取当前播放位置, 单位ms
*
* @return
*/
long getCurrentPosition();


getDuration

    /**
* 获取视频时长, 单位ms
*
* @return
*/
long getDuration();


createVideoThumbnail

    /**
* 获取当前帧截图
* 如果当前surfaceView渲染的hdr视频,请传一个最低码率的url
* SurfaceView截图是耗时操作
*
* @return Bitmap位图
*/
Bitmap createVideoThumbnail(Object renderView, String url);


getDownloadedPercent

    /**
* 获取视频已下载的百分比
*
* @return
*/
int getDownloadedPercent();


getPlayerType

    /**
* 获取播放器类型
*
* @return
* @see KSMediaPlayerConstants
* @see KSMediaPlayerConstants#KS_MEDIA_PLAYER_TYPE_SYSTEM 系统播放器
* @see KSMediaPlayerConstants#KS_MEDIA_PLAYER_TYPE_KWAI kwaiplayer
*/
int getPlayerType();


getCurrentPlayUrl

    /**
* 获取当前播放url
* @return 当前播放url
*/
String getCurrentPlayUrl();


getDebugInfo

    /**
* 获取调试信息
*
* @return
* @see KSMediaPlayerDebugInfo
*/
KSMediaPlayerDebugInfo getDebugInfo();


start

    /**
* 开始播放,在prepared状态后调用
*/
void start() throws Exception;


seekTo

    /**
* 改变视频播放位置到某个时间点
*/
void seekTo(long msec);


isLooping

    /**
* 返回是否开启loop
*
* @return true代表loop,默认false
*/
boolean isLooping();


setVolume

    /**
* 设置播放音量
*
* @param leftVolume 左声道音量(0-1)
* @param rightVolume 右声道音量(0-1)
*/
void setVolume(float leftVolume, float rightVolume);


setVideoContext

    /**
* 设置videoContext
* 上下滑时提前创建播放器进行preload,在下滑时更新更新videoContext.clickTime计算用户首屏
* 业务层需要上报的其他信息,可添加到mExtra字段
*
* @param videoContext
* @see KSMediaPlayerVideoContext
*/
void setVideoContext(KSMediaPlayerVideoContext videoContext);


pause

    /**
* 暂停播放
*/
void pause() throws Exception;


stop

    /**
* 停止播放
*/
void stop() throws Exception;


retryPlayback

    /**
* 重试播放,由于断网或网络切换导致的播放错误可调用该接口重试播放,重试成功后自动从出错位置开始播放
*
* @return true 重试成功,false 重试失败
*/
void retryPlayback();


releaseAsync

    /**
* 异步释放播放器并上报播放埋点
*/
void releaseAsync(OnPlayerReleaseListener listener);


setOnPreparedListener

    /**
* 设置点播播放prepareAsync回调监听
*
* @param listener
*/
void setOnPreparedListener(OnPreparedListener listener);


setOnEventListener

    /**
* 设置点播播放相关事件监听, 回调的第一个what参数的意义可以参考KSMediaPlayerConstants.java里的KS_MEDIA_*变量
*
* @param listener
*/
void setOnEventListener(OnEventListener listener);


setOnErrorListener

    /**
* 设置点播播放错误监听器, 具体的错误码可以参考《错误码查询文章》
*
* @param listener
*/
void setOnErrorListener(OnErrorListener listener);


setVideoSizeChangedListener

    /**
* 设置点播播放视频分辨率变化监听
*
* @param listener
*/
void setVideoSizeChangedListener(OnVideoSizeChangedListener listener);


setBufferingUpdateListener

    /**
* 设置点播视频缓冲加载进度监听
*
* @param listener
*/
void setBufferingUpdateListener(OnBufferingUpdateListener listener);


setOnErrorRefreshUrlListener

    /**
* 设置Url刷新监听
*
* @param listener
* @see OnErrorRefreshUrlInternalListener
*/
void setOnErrorRefreshUrlListener(OnErrorRefreshUrlListener listener);


setOnDownloadListener

    /**
* 设置下载监听
*
* @param listener
* @see OnCacheListener
*/
void setOnDownloadListener(KSMediaPlayerDownloadListener listener);


setOnRepresentationSelectListener

    /**
* 设置manifest档位选择监听
*
* @param listener
* @see OnRepresentationSelectListener
*/
void setOnRepresentationSelectListener(OnRepresentationSelectListener listener);


setSpeed

    /**
* 倍速播放功能
*
* @param speed 小于1慢速,大于1快速
*/
void setSpeed(float speed);


switchVideoQuality

    /**
* 切换清晰度,会恢复进度,有相应事件回调
*
* @param url
* @see KSMediaPlayerConstants
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_START。开始切换
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_END。结束切换,错误则在extra携带
*/
void switchVideoQuality(String url);

/**
* 自定义cacheKey切换清晰度(自定义cacheKey播放时使用),会恢复进度,有相应事件回调
*
* @param url
* @param cacheKey 自定义cacheKey,为空使用默认实现
* @see KSMediaPlayerConstants
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_START。开始切换
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_END。结束切换,错误则在extra携带
*/
void switchVideoQuality(String url, String cacheKey);

/**
* manifest切换清晰度,会恢复进度,有相应事件回调
*
* @param qualityType 清晰度类型
* @see KSMediaPlayerConstants
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_START。开始切换
* KS_MEDIA_PLAYER_INFO_VIDEO_QUALITY_SWITCH_END。结束切换,错误则在extra携带
*/
void switchVideoQualityWithType(String qualityType);


setDanmakuMaskVttUrl

    /**
* 设置vtt文件下载地址
* 由于使用hodor作为内部下载器,所以需要保证在hodor初始化之后调用
*
* @param url vtt地址
* @return 是否设置成功
*/
boolean setDanmakuMaskVttUrl(String url);


updateDanmakuRect

    /**
* 更新弹幕View Rect,使用弹幕自身坐标系,
*
* @param danmakuRect
*/
void updateDanmakuRect(RectF danmakuRect);


updateVideoRect

    /**
* 更新视频显示区域 Rect,为相对弹幕坐标的相对位置
*
* @param videoRect
*/
void updateVideoRect(RectF videoRect);


enableDanmakuMask

    /**
* 开启/关闭 弹幕防挡
*
* @param enable
*/
void enableDanmakuMask(boolean enable);


setSubtitleSelected

    /**
* 设置字幕选中状态
*
* @param index 字幕对应index,关联KSVodSubtitle.index
*/
void setSubtitleSelected(int index, boolean selected);


setOnSubtitleListener

    /**
* 设置字幕相关回调
*
* @param listener
*/
void setOnSubtitleListener(OnSubtitleListener listener);


setOnPlayFinishReportListener

    /**
* 播放结束上报埋点回调
* @param listener 上报埋点回调
*/
void setOnPlayFinishReportListener(OnPlayFinishReportListener listener);


setInteractiveMode

    /**
* VR
* 设置交互模式
*
* @param mode
*/
void setInteractiveMode(@KSMediaPlayerConstants.VRInteractiveMode int mode);


handleTouchEvent

    /**
* VR
* 处理手势事件
*
* @param event 手势事件
* @return 是否处理
*/
boolean handleTouchEvent(MotionEvent event);


registerSensorEvent

    /**
* VR
* register sensor
*/
void registerSensorEvent();


unRegisterSensorEvent

    /**
* VR
* unregister sensor
*/
void unRegisterSensorEvent();


getOrientationDegree

    /**
* VR
* 获取当前全景视频的角度方位
*
* @return 返回值是0-360度的值
*/
int getOrientationDegree();



IKSLivePlayer

成员方法

setSurface

    /**
* 设置渲染目标
*
* @param surface
*/
void setSurface(Surface surface);


isPlaying

    /**
* 检查当前播放器是否处于播放状态
*
* @return true or false
*/
boolean isPlaying();


getVideoWidth

    /**
* 获取视频宽
*
* @return 视频宽
*/
int getVideoWidth();


getVideoHeight

    /**
* 获取视频高
*
* @return 视频高
*/
int getVideoHeight();


setVolume

    /**
* 设置音量
*
* @param left
* @param right
*/
void setVolume(float left, float right);


setPlayerMute

    /**
* 静音播放
* @param mute true:静音 false:恢复
*/
void setPlayerMute(boolean mute);


start

    /**
* 开始播放
*/
void start() throws Exception;


stop

    /**
* 停止播放
*/
void stop() throws Exception;


releaseAsync

    /**
* 异步释放播放器并上报播放埋点
*/
void releaseAsync();


setOnErrorListener

    /**
* 设置setOnErrorListener
*
* @param listener
*/
void setOnErrorListener(OnErrorListener listener);


setOnVideoSizeChangedListener

    /**
* 设置OnVideoSizeChangedListener
*
* @param listener
*/
void setOnVideoSizeChangedListener(OnVideoSizeChangedListener listener);


setOnStateChangeListener

    /**
* 设置OnStateChangeListener
*
* @param listener
*/
void setOnStateChangeListener(OnStateChangeListener listener);


setOnRenderListener

    /**
* 设置OnRenderListener, 包含视频首帧onVideoRenderingStart回调和音频首帧onAudioRenderingStart回调
*
* @param listener
*/
void setOnRenderListener(OnRenderListener listener);


setOnBufferListener

    /**
* 设置OnBufferListener
*
* @param listener
*/
void setOnBufferListener(OnBufferListener listener);


setLiveDataSourceFetcher

    /**
* 设置重连fetcher
*/
void setLiveDataSourceFetcher(KsLiveDataSourceFetcher fetcher);


setOnSeiInfoListener

    /**
* 设置OnSeiInfoListener
*
* @param listener
*/
void setOnSeiInfoListener(OnSeiInfoListener listener);


setOnAudioProcessPCMAvailableListener

    /**
* 设置音频PCM监听
*
* @param listener
*/
void setOnAudioProcessPCMAvailableListener(OnAudioProcessPCMAvailableListener listener);


getKSLiveDebugInfo

    /**
* debug信息
* @return debug信息
*/
KSLivePlayerDebugInfo getKSLiveDebugInfo();


setOnLiveCompletionListener

    /**
* 设置直播拉流结束的回调
* @param listener
*/
void setOnLiveCompletionListener(LivePlayerCompleteListener listener);


setLiveRequestListener

    /**
* 设置m3u8 url hook接口
* @param listener
*/
void setLiveRequestListener(LiveRequestListener listener);


getCurrentVideoPosition

    /**
* 获取当前直播时长, 单位ms
* @return ms
*/
long getCurrentVideoPosition();


setRetryStateListener

    /**
* 设置重试的结果监听
* @param listener 监听
*/
void setRetryStateListener(RetryStateListener listener);


内部类

OnAudioProcessPCMAvailableListener

        /**
* 这个回调会在解码线程调用,注意线程安全。
* 同时内部不要做耗时操作,否则播放会卡顿。
*
* @param pcmData 数据
* @param timeStamp 时间戳 ms
* @param channels 音频声道数
* @param sampleRate 采样率
*/
@AnyThread
void onAudioProcessPCMAvailable(@NonNull ByteBuffer pcmData, long timeStamp, int channels,
int sampleRate, int fmt, double latency);


OnSeiInfoListener

        /**
* seiInfo
*/
void onSeiInfo(byte[] data, int size,int payloadType);


LivePlayerCompleteListener

        /**
* 当前url拉流结束
*/
void onLiveComplete();


KSMediaPlayerCache

类方法

getCachedSize

    /**
* 获取针对url对应的cache文件缓存的字节数
*
* @param url 数据源
* @return 返回缓存字节数Byte
*/
public static long getCachedSizeWithUrl(String url) {
}

/**
* 获取cacheKey对应的cache文件缓存的字节数
*
* @param url 数据源
* @param cacheKey 没有可传null
* @return 返回缓存字节数Byte
*/
public static long getCachedSize(String url, String cacheKey) {
}


isFullyCached

    /**
* 针对url对应的cache文件是否缓存完整
*
* @param url 数据源
* @return true 代表缓存完整
*/
public static boolean isFullyCached(String url) {
}

/**
* cacheKey对应的cache文件是否缓存完整
*
* @param url 数据源
* @param cacheKey 没有可传null
* @return true 代表缓存完整
*/
public static boolean isFullyCached(String url, String cacheKey) {}


getTotalCachedSize

    /**
* 获取目录的一共缓存了多大的文件
*
* @return 返回缓存字节数Byte
*/

public static long getTotalCachedSize() {}


clearCache

    /**
* 清理缓存
*/
public static void clearCache() {}


setCacheKeyGenerator

    /**
* 自定义生成cacheKey
* @param ksCacheKeyGenerator cache生成器
*/
public static void setCacheKeyGenerator(final KSCacheKeyGenerator ksCacheKeyGenerator) {}


内部类

KSCacheKeyGenerator

    public interface KSCacheKeyGenerator {
/**
* 根据播放地址url生成缓存key
* @param url 播放地址
* @return 缓存key
*/
String getCacheKey(String url);
}



KSMediaPlayerConfig

类方法

init

    /**
* 初始化DNS配置,建议在Application中尽早初始化。
*
* @param app Application必填项
* @param appId appID 需要后台申请
* @param deviceId 设备ID
* @param listener 初始化结果回调
*/
public static void init(@NonNull final Application app, @NonNull String appId, String deviceId,
OnInitListener listener) {
}

/**
* @param app Application必填项
* @param appId appID 需要后台申请
* @param deviceId 设备ID
* @param cachePath setHodorRootPathExtraDirName("some_dir")后,media的缓存路径是:/data/user/0/com.smile.gifmaker/files/.hodor/some_dir/media。如果传null或者空串就是默认位置
* @param listener 初始化结果回调
*/
public static void init(@NonNull final Application app, @NonNull String appId, String deviceId,
String cachePath,
OnInitListener listener) {
}


setDeviceId

    /**
* 设置deviceId
*
* @param deviceId 设备唯一ID
*/
public static void setDeviceId(String deviceId) {
}


isSupportHDR

    /**
* 当前是否支持HDR
*
* @return
*/
public static boolean isSupportHDR() {}


isSupportHwDecode

    /**
* 判断机型是否支持硬解
*
* @return 1支持硬解 0只支持软解
*/
public static boolean isSupportHwDecode() {}


generateDeviceId

    /**
* 获取当前设备唯一标识符
*
* @param context
* @return string
*/
public static String generateDeviceId(Context context) {}


setLogListener

    /**
* 设置日志回调
*
* @param listener
*/
public static void setLogListener(KSMediaPlayerLogListener listener) {}


KSMediaPlayerDownloadInfo

成员变量

uri

    /**
* 下载媒资信息
*/
public String uri;


ip

    /**
* 下载ip
*/
public String ip;


host

    /**
* host
*/
public String host;


cacheKey

    /**
* 缓存key
*/
public String cacheKey;


sessionUUID

    /**
* 一次任务(预加载/播放)保持唯一
*/
public String sessionUUID;


downloadUUID

    /**
* 一次HTTP请求保持唯一
*/
public String downloadUUID;


contentLength

    /**
* HTTP contentLength
*/
public long contentLength;


totalBytes

    /**
* 资源总大小 单位byte
*/
public long totalBytes;


position

    /**
* 当前已下载大小 单位byte
*/
public long position;


downloadState

    /**
* 下载状态
* @see com.kwai.video.ksmediaplayerkit.prefetcher.BasePrefetchTask#HodorTaskState_Finished = 1; // 全部下载完成
*/
public int downloadState;


httpResponseCode

    /**
* http状态码
*/
public int httpResponseCode;


errorCode

    /**
* 下载错误码
*/
public int errorCode;


errorMsg

    /**
* 下载错误信息
*/
public String errorMsg;


downloadBytes

    /**
* 一次请求下载大小 byte
*/
public long downloadBytes;


timeCost

    /**
* 一次请求花费时间 ms
*/
public long timeCost;


downloadState

    /**
* 下载结束原因
* @see com.kwai.video.ksmediaplayerkit.prefetcher.BasePrefetchTask#STOP_REASON_FINISHED = 1; // 分片下载结束
* @see com.kwai.video.ksmediaplayerkit.prefetcher.BasePrefetchTask#STOP_REASON_CANCELLED = 2; // 任务返回
*/
public int stopReason;


networkType

    /**
* 下载使用的网络
*/
public int networkType;


成员方法

getNetworkType

    /**
* 网络类型
* @param networkType string类型
* @return int值的网络类型
*/
int getNetworkType(String networkType) {
int type = KSMediaPlayerConstants.KSMediaPlayerDownloadNetworkType.TYPE_UNKNOWN;
if (TextUtils.equals("WIFI", networkType)) {
type = KSMediaPlayerConstants.KSMediaPlayerDownloadNetworkType.TYPE_WIFI;
} else if (TextUtils.equals("UNKNOWN", networkType)) {
type = KSMediaPlayerConstants.KSMediaPlayerDownloadNetworkType.TYPE_UNKNOWN;
} else {
type = KSMediaPlayerConstants.KSMediaPlayerDownloadNetworkType.TYPE_MOBILE;
}
return type;
}


KSMediaPlayerException

构造器

    /**
* 播放器异常
* @param cause 异常throwable
*/
public KSMediaPlayerException(Throwable cause){
}

/**
* 播放器异常
* @param message 异常字符串
*/
public KSMediaPlayerException(String message){
}


KSMediaPlayerVideoContext

成员变量

mVideoId

    /**
* 媒资id
*/
public String mVideoId;


mClickTime

    /**
* 点击视频时间,用于计算ClickToFirstFrame
*/
public long mClickTime;


mPageName

    /**
* 页面名称,用来区分不同页面的播放统计数据
*/
public String mPageName;


mExtra

    /**
* 扩展信息
*/
public String mExtra;


mClickToFirstFrame

    /**
* 首屏时间
*/
public long mClickToFirstFrame;


mBizName

    /**
* 业务名称
*/
public String mBizName;


mSceneName

    /**
* 场景名称
*/
public String mSceneName;


mAbConfig

    /**
* ab测试
*/
public String mAbConfig;


mAppChannel

    /**
* app渠道
*/
public String mAppChannel;


mCdnManufacture

    /**
* cdn厂商
*/
public String mCdnManufacture;


OnInitListener

onInitSuccess

        /**
* sdk初始化成功
*/
void onInitSuccess();


onInitError

        /**
* sdk初始化失败
* @param e 失败信息
*/
void onInitError(KSMediaPlayerException e);


KSMediaPlayerBuilder

成员方法

构造器

/**
* 构造器
* @param context 安卓context
*/
public KSMediaPlayerBuilder(Context context) {}

setForceDecodeType

/**
* 强制设置解码器类型, 不设置的默认走播放器的自适应决策树逻辑
* @param decodeType
* @return
*/
public KSMediaPlayerBuilder setForceDecodeType(@VideoCodecType int decodeType) {}

setVideoAlphaType

/**
* 设置视频alpha通道信息
*
* @param type 视频alpha通道类型
* 0: 普通视频 默认
* 1:左右通道 alpha通道宽高与rgb通道一致
* 2:左右通道 alpha通道宽高为rgb通道一半
* 5:左右通道 alpha通道宽高与rgb通道一致, alpha在左侧
* @return builder
*/
@Keep
public KSMediaPlayerBuilder setVideoAlphaType(@KSMediaPlayerConstants.KSMediaPlayerVideoAlphaType int type) {}

setAbLoopCount

/**
* 带计数器a-b循环播放结束后会继续播放,播放器内部不会暂停,实现OnABLoopEndOfCounterListener可获取计数器结束回调
* 对纯音频多媒体无效 设置一些无效值,abloop则不会生效
*
* @param startMs 开始时间
* @param endMs 结束时间
* @param count 循环播放次数 默认-1无限循环
*/
@Keep
public KSMediaPlayerBuilder setAbLoopCount(long startMs, long endMs, int count) {}

/**
* 带计数器a-b循环播放结束后会继续播放,播放器内部不会暂停,实现OnABLoopEndOfCounterListener可获取计数器结束回调
* 对纯音频多媒体无效 设置一些无效值,abloop则不会生效
*
* @param startMs 开始时间
* @param endMs 结束时间
* @param count 循环播放次数 默认-1无限循环
* @param disableSeekAtStart abloop设置是否在开播seek到startms,默认会seek到循环开始时间播放
*/
@Keep
public KSMediaPlayerBuilder setAbLoopCount(long startMs, long endMs, int count, boolean disableSeekAtStart) {}

setDataSource

/**
* 设置点播播放地址 * @param url 播放地址
*/public KSMediaPlayerBuilder setDataSource(String url) {}

/**
* 设置点播播放地址
* @param url 播放地址
* @param cacheKey 缓存key
* @return this
*/
public KSMediaPlayerBuilder setDataSource(String url, String cacheKey) {}

/**
* 设置点播播放地址列表,与setDataSource互斥
* @param urlList 播放地址
*/
public KSMediaPlayerBuilder setDataSource(List<String> urlList) {}

enableP2sp

/**
* 当前url是否允许p2sp播放
* @param enableP2sp
* @return
*/
public KSMediaPlayerBuilder enableP2sp(boolean enableP2sp) {}

setUseHwTvPlay

/**
* 强制开启TV端的硬解
* @param enable
* @return
*/
public KSMediaPlayerBuilder setUseHwTvPlay(boolean enable) {}

setKwaiManifest

/**
* 支持输入快手多码率manifest(多个码率/分辨率档位清单),sdk会根据机型能力、当前网络决策使用某一个码率/分辨率档位
*
* @param manifest
* @return
*/
public KSMediaPlayerBuilder setKwaiManifest(String manifest) {}

setPlayTokenSource

/**
* 支持playToken播放
*
* @param source
* @return
*/
public KSMediaPlayerBuilder setPlayTokenSource(KSPlayTokenSource source) {}

setKwaiManifestRepId

/**
* 设置多码率的manifest启播档位
*
* @param id 对应manifest-representation-id字段
* switch_code >=0,选择switch_code对应的档位id
* switch_code =-100,正常的多码率决策逻辑
* switch_code = (-100, -199),EyeMax档位选择需求 -101,固定选择最高分辨率档位 -102,固定选择已缓存数据量最多的档位 -103,固定选择最低分辨率档位
* switch_code = (-200, -299), 多码率手动切换 -201, "超清"档位, 在 720P/1080P 之间选择 -202, "省流"档位, 选码率最低的档位 其它值预留,走正常的多码率决策逻辑 其它值预留,正常的多码率决策逻辑
* @return this
*/
public KSMediaPlayerBuilder setKwaiManifestRepId(int id) {}

seekAtStart

/**
* 设置起播seek
*
* @param seekMs, ms
*/
public KSMediaPlayerBuilder seekAtStart(long seekMs) {}

setStartOnPrepared

/**
* 是否在onPrepared后自动起播,启用后不再需要在OnPrepared调用start
*
* @param startOnPrepared
* @return this
*/
public KSMediaPlayerBuilder setStartOnPrepared(boolean startOnPrepared) {}

setEnableAdjustRateVoice

/**
* 是否开启变速不变调
*
* @param enableAdjustRateVoice
* @return this
*/
public KSMediaPlayerBuilder setEnableAdjustRateVoice(boolean enableAdjustRateVoice) {}

setPlayFromHistory

/**
* 是否从播放历史进行播放
*
* @param enable
* @return this
*/
public KSMediaPlayerBuilder setPlayFromHistory(boolean enable) {}

setVideoId

/**
* 设置videoId
*
* @param videoId
* @return this
*/
public KSMediaPlayerBuilder setVideoId(String videoId) {}

enableDanmakuMask

/**
* 是否开启弹幕防挡
*
* @param enable
* @return this
*/
public KSMediaPlayerBuilder enableDanmakuMask(boolean enable) {}

setDanmakuMaskRender

/**
* 设置弹幕防挡render
*
* @param render 在绘制弹幕使用当前render处理,详情见demo使用
* @return this
*/
public KSMediaPlayerBuilder setDanmakuMaskRender(KSMediaMaskRender render) {}

setSubtitle

/**
* 添加外挂字幕
*
* @param url 字幕对应url
* @param selectIndex 当前字幕添加选中index
* @return 字幕对应index, 关联 KSVodSubtitle.index
*/
public KSMediaPlayerBuilder setSubtitle(String[] url, int selectIndex) {}

setVideoRenderType

/**
* 标识视频view渲染方式,用于校准弹幕防挡
*
* @param renderType
* @return this
*/
public KSMediaPlayerBuilder setVideoRenderType(KSMediaRenderType renderType) {}

setMaskRenderType

/**
* 标识弹幕view渲染方式,用于校准弹幕防挡
*
* @param renderType
* @return this
*/
public KSMediaPlayerBuilder setMaskRenderType(KSMediaRenderType renderType) {}

setFrameRate

/**
* 当前屏幕刷新率,用于校准弹幕防挡
*
* @param frameRate
* @return this
*/
public KSMediaPlayerBuilder setFrameRate(float frameRate) {}

setPlayerType

/**
* 设置播放器类型,so失败会强制使用系统播放器
*
* @param playerType 支持系统播放器和快手播放器
* @return this
* @see KSMediaPlayerConstants KS_MEDIA_PLAYER_TYPE_KWAI or KS_MEDIA_PLAYER_TYPE_SYSTEM
*/
public KSMediaPlayerBuilder setPlayerType(int playerType) {}

enableFirstFrameRender

/**
* 设置首帧预渲染
*
* @param enable
* @return this
*/
public KSMediaPlayerBuilder enableFirstFrameRender(boolean enable) {}

setDisableLocalCache

/**
* 设置关闭本地缓存,true代表视频不会缓存到本地,默认false
*
* @param disable
* @return this
*/
@Keep
public KSMediaPlayerBuilder setDisableLocalCache(boolean disable) {}

setSubtitle

/**
* 添加外挂字幕
*
* @param url 字幕对应url
* @param selectIndex 当前字幕添加选中index
* @return 字幕对应index, 关联 KSVodSubtitle.index
*/
public KSMediaPlayerBuilder setSubtitle(String[] url, int selectIndex) {}

setVideoQualityType

/**
* 视频质量类型,HDR/SDR+必须设置
*
* @param type
* @return this
* @see KSMediaPlayerConstants.KSMediaPlayerQualityType
*/
public KSMediaPlayerBuilder setVideoQualityType(String type) {}

setStereoType

/**
* 设置视频类型
* 0 普通
* 1 vr
*
* @param type
* @return this
*/
public KSMediaPlayerBuilder setStereoType(@KSMediaPlayerConstants.StereoType int type) {}

enableAccurateSeek

/**
* 是否开启精准seek,默认true,一般在纯音频场景使用false
* @param enable 开启
* @return builder this
*/
public KSMediaPlayerBuilder enableAccurateSeek(boolean enable) {}

setIsLoop

/**
* 是否循环播放
* @param isLoop 循环
* @return builder
*/
public KSMediaPlayerBuilder setIsLoop(boolean isLoop) {}

build

/**
* 创建点播播放器
*
* @return KSMediaPlayer
*/
public IKSMediaPlayer build() throws KSMediaPlayerException {}


KSLivePlayerBuilder

成员变量

mContext

/**
* ​安卓context
*/
public Context mContext;

mHeaders

/**
* ​网络请求headers头
*/
public Map<String, String> mHeaders;

mRetryCount

/**
* ​直播报错后的重试次数
*/
public int mRetryCount = -1;

mRetryInterval

/**
* ​直播报错后的重试间隔,毫秒
*/
public long mRetryInterval;

mDataSource

/**
* ​直播地址
*/
public KSLiveDataSource mDataSource;

成员方法

构造器

/**
* Builder的构造函数
* 必须传入应用的上下文
*/
public KSLivePlayerBuilder(Context context) {}

setDataSource

/**
* 设置播放地址
*
* @param dataSource 直播地址
*/
public KSLivePlayerBuilder setDataSource(KSLiveDataSource dataSource) {}

setHeaders

/**
* 设置直播请求头
*
* @param headers
* @return
*/
public KSLivePlayerBuilder setHeaders(Map<String, String> headers) {}

setRetryCount

/**
*
* @param retryCount
* @return 播放器错误重试次数
*/
public KSLivePlayerBuilder setRetryCount(int retryCount) {}

setRetryInterval

/**
* 设置播放器重试间隔
* @param retryInterval ms
* @return
*/
public KSLivePlayerBuilder setRetryInterval(long retryInterval) {}

build

/**
* 创建LivePlayer实例
*/
public IKSLivePlayer build() {}


KSLiveDataSource

成员变量

url

/**
* ​url地址
*/
public String url;

streamId

/**
* ​媒资id
*/
public String streamId;


KSPlayTokenSource

成员变量

videoId

/**
* ​videoId
*/
public String videoId;

playToken

/**
* token
*/
public String playToken;


KSLivePlayerDebugInfo

成员变量

firstScreenTimeTotal

/**
* ​首屏时长, 单位ms
*/
public long firstScreenTimeTotal;

firstScreenStepCostInfo

/**
* 首屏信息,包含分段信息的字符串
*/
public String firstScreenStepCostInfo;

firstScreenTimePktReceive

/**
* ​从网络读取一帧视频数据的耗时
*/
public long firstScreenTimePktReceive;

firstScreenTimeDecode

/**
* 首帧解码的耗时
*/
public long firstScreenTimeDecode;

videoBitrate

/**
* ​拉流码率参数视频
*/
public long videoBitrate;

audioBitrate

/**
* 拉流码率参数音频
*/
public long audioBitrate;

videoDecoder

/**
* ​video解码器
*/
public String videoDecoder;

audioDecoder

/**
* audio解码器
*/
public String audioDecoder;

videoReadFramesPerSecond

/**
* ​拉流帧率参数
*/
public float videoReadFramesPerSecond;

videoDecodeFramesPerSecond

/**
* 视频解码帧率
*/
public float videoDecodeFramesPerSecond;

videoDisplayFramesPerSecond

/**
* ​视频显示帧率
*/
public float videoDisplayFramesPerSecond;

videoDelayRender

/**
* 延迟时间
*/
public int videoDelayRender;

audioTotalDataSize

/**
* ​下载的audio data
*/
public long audioTotalDataSize;

videoTotalDataSize

/**
* 下载的video data
*/
public long videoTotalDataSize;

totalDataSize

/**
* ​下载的data
*/
public long totalDataSize;

audioBufferTimeLength

/**
* 音频缓存时长, 单位ms
*/
public int audioBufferTimeLength;

videoBufferTimeLength

/**
* ​视频缓存时长, 单位ms
*/
public int videoBufferTimeLength;

cpuInfo

/**
* cpu信息
*/
public String cpuInfo;

memoryInfo

/**
* ​内存信息
*/
public String memoryInfo;

stepCostFirstFrameRender

/**
* 首帧分阶段耗时
*/
public long stepCostFirstFrameRender;

gopDuration

/**
* gop时长, 单位ms
*/
public long gopDuration;

serverIp

/**
* ​服务端ip
*/
public String serverIp;

blockCnt

/**
* 卡顿次数
*/
public int blockCnt;

blockDuration

/**
* ​卡顿时长, 单位ms
*/
public long blockDuration;

videoBlockCnt

/**
* 视频卡顿次数
*/
public int videoBlockCnt;

videoBlockDuration

/**
* ​视频卡顿时长, 单位ms
*/
public long videoBlockDuration;

playToken

/**
* token
*/
public String playToken;

videoId

/**
* ​videoId
*/
public String videoId;

firstScreenTimeDnsAnalyze

/**
* DNS解析
*/
public long firstScreenTimeDnsAnalyze;

firstScreenTimeHttpConnect

/**
* ​http建联
*/
public long firstScreenTimeHttpConnect;

firstScreenTimeInputOpen

/**
* ffplay first step input open
*/
public long firstScreenTimeInputOpen;

firstScreenTimeStreamFind

/**
* ​拉到流的时间
*/
public long firstScreenTimeStreamFind;

firstScreenTimeCodecOpen

/**
* 打开解码器时长, 单位ms
*/
public long firstScreenTimeCodecOpen;

firstScreenTimeWaitForPlay

/**
* ​首帧等待渲染时长, 单位ms
*/
public long firstScreenTimeWaitForPlay;

成员方法

构造器

public KSLivePlayerDebugInfo(LivePlayerController livePlayerController) {}


KSMediaPlayerDebugInfo

成员变量

version

/**
* ​sdk版本
*/
public String version;

inputUrl

/**
* 输入url
*/
public String inputUrl;

playingUrl

/**
* ​正在播放的地址
*/
public String playingUrl;

videoCodec

/**
* 视频解码信息
*/
public String videoCodec;

audioCodec

/**
* ​音频解码信息
*/
public String audioCodec;

duration

/**
* 视频时长, 单位ms
*/
public long duration;

width

/**
* ​video视频宽
*/
public int width;

height

/**
* video视频高
*/
public int height;

fps

/**
* ​帧率
*/
public float fps;

bitrate

/**
* 码率
*/
public float bitrate;

deviceId

/**
* ​deviceid
*/
public String deviceId;

host

/**
* host
*/
public String host;

ip

/**
* ​ip
*/
public String ip;

mDownloadSpeed

/**
* 下载速度, kB/s
*/
public long mDownloadSpeed;

playerType

/**
* ​播放器类型
* @see KSMediaPlayerConstants
* @see KSMediaPlayerConstants#KS_MEDIA_PLAYER_TYPE_SYSTEM 系统播放器
* @see KSMediaPlayerConstants#KS_MEDIA_PLAYER_TYPE_KWAI kwaiplayer
*/
public int playerType;

成员方法

reset

/**
* ​重置
*/
public void reset() {}


KSRepresentation

成员变量

id

/**
* ​id
*/
public int id;

url

/**
* 播放url
*/
public String url;

qualityType

/**
* ​视频质量类型
*/
public String qualityType;

qualityLabel

/**
* 视频质量标签
*/
public String qualityLabel;

成员方法

isValid

/**
* ​是否合法
*/
public boolean isValid() {}


KSMediaSubtitleDetail

成员变量

id

/**
* ​id
*/
public int id;

url

/**
* 播放url
*/
public String url;

qualityType

/**
* ​视频质量类型
*/
public String qualityType;

qualityLabel

/**
* 视频质量标签
*/
public String qualityLabel;











上一篇:快速开始下一篇:错误码查询
该篇文档内容是否对您有帮助?
有帮助没帮助