接口速查
更新时间:2024-03-21
播放器相关
BDCloudMediaPlayer类
接口名 | 描述 |
---|---|
static void setAppId(String appid) | 设置AppId(即LicenseId) |
static void setCuid(String cuid) | 设置自定义cuid,该信息将透传给APM模块上报 |
static String getSdkVersion() | 获取sdk版本,形式为 xx.xx.xx |
void setDataSource(Context context, Uri uri) | 设置播放源 |
void setDataSource(Context context, Uri uri, Map<String,String> headers) | 设置播放源,可设置请求头信息 |
void setDataSource(String path) | 设置播放源 (file-path or http/rtsp URL) |
void setDataSource(String path, Map<String,String> headers) | 设置播放源 (file-path or http/rtsp URL),可设置网络请求头部信息。 |
void setDecryptTokenForHLS(String token) | DRM加密-token加密,通过该接口设置token |
String getDataSource() | 获取播放路径 |
void setDisplay(SurfaceHolder sh) | 设置 SurfaceHolder 用于显示视频 |
void setSurface(android.view.Surface surface) | 设置Surface来显示视频,与接口setDisplay(SurfaceHolder)功能类似,但不支持setScreenOnWhilePlaying(boolean) 接口的设置。 |
void setScreenOnWhilePlaying(boolean screenOn) | 设置播放时屏幕保持,仅在设置过SurfaceHolder时有效。 |
void prepareAsync() | 异步准备,播放器仅支持异步准备 |
void start() | 启动播放 要求播放源已经准备好 |
void pause() | 暂停播放 |
void seekTo(long msec) | 快速切换到某个时间点进行播放 |
void stop() | 停止播放 |
void reset() | 重置,将状态重置为IDLE 重置后需重新设置播放源 |
void release() | 释放播放器 |
long getCurrentPosition() | 获取当前播放位置,单位为毫秒 |
long getDuration() | 获取音视频时长,单位为毫秒 |
void setDecodeMode(int mode) | 设置软硬解模式,默认为auto模式(自动检测,优先硬解) |
int getDecodeMode() | 获取之前设置的解码模式 |
int getVideoHeight() | 获取视频高度 |
int getVideoWidth() | 获取视频宽度 |
void setLooping(boolean looping) | 设置是否循环播放 |
boolean isLooping() | 是否循环播放 |
boolean isPlaying() | 是否正在播放 |
void setBufferSizeInBytes(int size) | 设置缓冲过程中,起播数据字节长度 |
void setBufferTimeInMs(int time) | 设置缓冲过程中,起播数据时长 |
void setTimeoutInUs(int timeout) | 设置建立连接和数据下载过程中的超时时长,单位为微秒,默认值为15秒 |
void setMaxCacheSizeInBytes(int size) | 设置 最大缓冲区长度 |
void setMaxCacheDuration(int duration) | 设置 最大缓冲区时长,单位毫秒 |
void setMaxProbeSize(int maxProbeSize) | 设置probe(音视频格式探测)最大数据大小 |
void setMaxProbeTimeInMs(int maxProbeTime) | 设置probe(音视频格式探测)最大时长,单位毫秒 |
void setInitPlayPosition(long positionInMilliSeconds) | 设置初始播放位置, 需在prepareAsync之前调用 |
void setLogEnabled(boolean enable) | 是否显示debug级别日志 |
long getDownloadSpeed() | 获取网络下载速度 |
void setVolume(float leftVolume, float rightVolume) | 设置左右声道的音量 |
void setWakeMode(android.content.Context context, int mode) | 设置保持唤醒模式 |
BDCloudTrackInfo[] getTrackInfo() | 获取所有音视频track的信息 |
int getSelectedTrack(int trackType) | 获取当前选中的视频/音频/字幕轨 |
void selectTrack(int track) | 选择轨道,track 对应getTrackInfo()返回数组的下标 |
void deselectTrack(int track) | 反选轨道,track 对应getTrackInfo()返回数组的下标 |
void toggleFrameChasing(boolean isEnable) | 设置是否开启追帧播放功能(目前只支持 rtmp 和 http-flv 直播,其他场景请勿开启追帧) |
void setAudioDataCallback(OnReceiveAudioDataCallback callback) | 设置音频回调 (录制功能使用) |
int getCurrentVariantIndex() | 有感码率切换场景下,获得当前多码率子码流的index |
boolean selectResolutionByIndex(int index) | 切换多分辨率,以重新启播的方式实现,不保证无缝,需要首先调用getVariantInfo拿到数组 |
void selectVariantByIndex(int index) | 在起播时设置多码率index,在播放过程中的切换请使用selectResolutionByIndex |
String[] getVariantInfo() | 有感切换(SOURCE_SWITCH_NORMAL_MODE)场景下,获得多码率视频的各子码流信息 |
void addExtSubtitleUrl(String extSubUrl) | 添加外挂字幕,在播放器prepared之后调用 |
多码率无缝切换(HLS,MP4等主流媒体格式)
接口名 | 描述 |
---|---|
void setMediaInputType(int input) | 设置多码率切换模式,可选模式包括 - SOURCE_SWITCH_NORMAL_MODE:普通模式,非无缝切换 - SOURCE_SWITCH_SMOOTH_MODE:MP4无缝切换模式 - SOURCE_SWITCH_SMOOTH_HLS_MODE:HLS无缝切换模式 |
void setMediaItems(String[] mediaItems) | MP4多码率切换场景下,传入各子码流信息 |
String[] getMediaItems() | MP4和HLS无缝切换场景下,获得多码率视频的各子码流信息 |
int getCurrentMediaIndex() | MP4和HLS无缝切换场景下,获得当前的子码流index |
boolean setMediaItemIndex(int index) | 执行无缝码流切换 |
IMediaPlayer接口
接口名 | 描述 |
---|---|
IMediaPlayer.OnBufferingUpdateListener | interface,总缓冲进度监听器 |
IMediaPlayer.OnCompletionListener | interface,播放完成监听器 |
IMediaPlayer.OnErrorListener | interface,播放失败监听器 |
IMediaPlayer.OnInfoListener | interface,信息通知监听器 |
IMediaPlayer.OnPreparedListener | interface,准备完成监听器 |
IMediaPlayer.OnSeekCompleteListener | interface,Seek结束监听器 |
IMediaPlayer.OnVideoSizeChangedListener | interface,视频大小改变监听器 |
IMediaPlayer.OnMetadataListener | interface,直播视频元信息回调 |
IMediaPlayer.OnSEIListener | interface,SEI信息回调 |
IMediaPlayer.OnHdrStaticMetadataListener | interface,HDR静态元数据回调 |
IMediaPlayer.OnVividMetadataListener | interface,HDR Vivid动态元数据回调 |
IMediaPlayer.OnTimedTextListener | interface,字幕内容回调 |
IMediaPlayer.OnHlsSegmentRequestListener | interface,HLS分片请求回调 |
IMediaPlayer.OnTrackChangedListener | interface,音轨、字幕轨切换回调 |
IMediaPlayer.OnExtSubtitleOpenListener | interface,外挂字幕打开回调 |
静态变量名 | 描述 |
---|---|
MEDIA_INFO_UNKNOWN | 1,未知通知 |
MEDIA_INFO_VIDEO_RENDERING_START | 3,视频开始渲染 |
MEDIA_INFO_BUFFERING_START | 701,开始缓冲 |
MEDIA_INFO_BUFFERING_END | 702,停止缓冲 |
MEDIA_INFO_VIDEO_ROTATION_CHANGED | 10001,视频方向通知 |
MEDIA_INFO_AUDIO_RENDERING_START | 10002,音频开始播放 |
MEDIA_INFO_FRAMECHASING_START | 10003,直播追帧开始 |
MEDIA_INFO_FRAMECHASING_END | 10004,直播追帧结束 |
MEDIA_INFO_MEDIA_CHANGE_START | 10005,多码率切换开始 |
MEDIA_INFO_MEDIA_CHANGE_END | 10006,多码率切换结束 |
IMediaDataSource接口(外部媒体数据透传)
方法 | 描述 |
---|---|
int readAt(long position, byte[] buffer, int offset, int size) | 读取媒体数据 |
long getSize() | 获取媒体文件大小 |
void close() | 关闭外部数据源 |
下载器相关
VideoDownloadManager类
方法 | 描述 |
---|---|
void changeMaxDownloadingItems(int maxItems) | 更改最大并行下载数目,默认为5,范围为(1, 10]。 |
void deleteDownloader(String url) | 删除下载 |
HashMap<String,DownloadableVideoItem> getAllDownloadableVideoItems() | 获得所有下载项目(该hashMap为所有下载项的镜像列表) |
DownloadableVideoItem getDownloadableVideoItemByUrl(String url) | 获得单个下载项目信息 |
static VideoDownloadManager getInstance(Context context, String userName) | 获取下载器单例 |
String getUserName() | 获取设置的用户名 |
void pauseDownloader(String url) | 停止下载 |
void startOrResumeDownloader(String url, DownloadObserver observer) | 开始下载或者恢复下载 |
void startOrResumeDownloaderWithToken(String url, String token, DownloadObserver observer) | 开始下载或者恢复下载 |
void stopAll() | 暂停所有下载 |
DownloadableVideoItem类
方法 | 描述 |
---|---|
int getErrorCode() | 获取错误码 当DownloadStatus的状态为ERROR时,通过该接口获取错误码 |
String getFailReason() | 获取错误描述 推荐使用getErrorCode接口 |
String getLocalAbsolutePath() | 获取本地文件的全路径名 |
float getProgress() | 获得当前下载进度 |
DownloadableVideoItem.DownloadStatus getStatus() | 获取下载状态 |
String getUrl() | 获取url |
错误码 | 描述 |
---|---|
ERROR_CODE_NO_ERROR | 0,无错误 |
ERROR_CODE_INVALID_URL | 1,地址无效 |
ERROR_CODE_NETWORK_FAILED | 2, 网络问题 |
ERROR_CODE_SDCARD_UNMOUNTED | 3,本地存储问题 |
ERROR_CODE_M3U8_INVALID_FORMAT | 4,m3u8格式问题 |
ERROR_CODE_M3U8_SAVE_FAILED | 5,m3u8存储问题 |
ERROR_CODE_M3U8_DRM_INVALID | 6,drm保护相关key或者token无效 |
ERROR_CODE_TS_SAVE_FAILED | 7,ts文件保存失败 |
DownloadableVideoItem.DownloadStatus类
枚举成员 | 描述 |
---|---|
DownloadStatus.NONE | 初始状态,短暂 |
DownloadStatus.PENDING | 达到最大并发下载数,新加入的下载会pending |
DownloadStatus.DOWNLOADING | 正在下载 |
DownloadStatus.PAUSED | 下载暂停 |
DownloadStatus.ERROR | 下载出错 |
DownloadStatus.COMPLETED | 下载完成 |
DownloadStatus.DELETED | 删除状态。短暂:删除后会通过该状态回调observer的update,随后记录删除。 |
网络视频代理缓存
ProxyCacheManager类
方法 | 描述 |
---|---|
static synchronized ProxyCacheManager getInstance() | 获取缓存代理管理器单例 |
void setCacheDir(File cacheDir) | 设置视频缓存路径,若路径无效则使用默认路径 |
void setProxy(HttpProxyCacheServer proxy) | 设置网络代理服务 |
void setCacheAvailableListener(CacheListener listener) | 设置视频进度监听器 |
String getProxyUrl(Context context,String url) | 获取代理播放链接,播放器基于此链接进行播放 |
void cleanVideoCacheDir(Context context) | 清空缓存 |
void release() | 反注册缓存监听,释放资源 |
播放器录制
RecordController类
方法 | 描述 |
---|---|
void init(SurfaceTexture surfaceTexture, int framerate, int videoBitrate) | 初始化录制 |
void setRecordListener(IRecordListener listener) | 设置录制监听 |
void setRecordSize(int width, int height) | 设置录制尺寸 |
void startRecord(String filePath) | 开始录制 |
void onUpdateAudioData(byte[] bytes, int byteSize) | 更新正在播放的音频数据(通过调用BDCloudMediaPlayer#setAudioDataCallback 回调后设置) |
boolean isRecording() | 是否正在录制 |
void stopRecord() | 结束录制 |
void onDestroy() | 销毁 |