音视频转码MCT

    高级播放器接口速查

    高级播放器相关

    BDCloudMediaPlayer类

    接口名 描述
    long getCurrentPosition() 获取当前播放位置,单位为毫秒
    String getDataSource() 获取播放路径
    int getDecodeMode() 获取之前设置的解码模式
    long getDownloadSpeed() 获取网络下载速度
    long getDuration() 获取音视频时长,单位为毫秒
    static String getSdkVersion() 获取sdk版本,形式为 xx.xx.xx
    BDCloudTrackInfo[] getTrackInfo() 获取音视频track的信息
    int getVideoHeight() 获取视频高度
    int getVideoWidth() 获取视频宽度
    boolean isLooping() 是否循环播放
    boolean isPlaying() 是否正在播放
    boolean isUseApmDetect() 是否开启APM监控
    void pause() 暂停播放
    void prepareAsync() 异步准备,播放器仅支持异步准备。
    void release() 释放资源
    void reset() 重置,将状态重置为IDLE 重置后需重新设置播放源
    void seekTo(long msec) 快速切换到某个时间点进行播放
    static void setAK(String akOfBDCloud) 设置Access Key
    void setBufferSizeInBytes(int size) 设置缓冲过程中,起播数据字节长度
    void setBufferTimeInMs(int time) 设置缓冲过程中,起播数据时长
    void setTimeoutInUs(int timeout) 设置建立连接和数据下载过程中的超时时长,单位为微秒,默认值为15秒
    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 setDecodeMode(int mode) 设置软硬解模式,默认为auto模式(自动检测,优先硬解)
    void setDisplay(SurfaceHolder sh) 设置 SurfaceHolder 用于显示视频
    void setInitPlayPosition(long positionInMilliSeconds) 设置初始播放位置, 需在prepareAsync之前调用
    void setLogEnabled(boolean enable) 是否显示debug消息
    static void setLocalCacheEnabled(boolean isEnable, String cachePath) 是否开启本地边播边缓存,若开启传入缓存路径
    static void setPcdnEnabled(boolean pcdnEnable, boolean p2pEnable, long networkSoHandle) 是否Pcdn功能,是否开启P2P,若开启Pcdn,则需传入网络库句柄
    public void muteOrUnmuteAudio(boolean flag) 是否静音播放
    void setLooping(boolean looping) 设置是否循环播放
    void setMaxCacheSizeInBytes(int size) 设置 最大缓冲区长度
    void setScreenOnWhilePlaying(boolean screenOn) 设置播放时屏幕保持,仅在设置过SurfaceHolder时有效。
    void setSurface(android.view.Surface surface) 设置Surface来显示视频,与接口setDisplay(SurfaceHolder)功能类似,但不支持setScreenOnWhilePlaying(boolean) 接口的设置。
    void setUseApmDetect(boolean useApmDetect) 设置是否开启APM监控;开启后,需要额外嵌入APM SDK
    void setVolume(float leftVolume, float rightVolume) 设置左右声道的音量
    void setWakeMode(android.content.Context context, int mode) 设置保持唤醒模式
    void start() 启动播放 要求播放源已经准备好
    void stop() 停止播放

    BDCloudPlayerManager类

    接口名 描述
    static boolean libsPreLoad(Context context) 预加载播放相关库,若在播放器实例化之前使用预取功能,则需预加载播放库
    static void prefetch(String url, String ua, String header, int prepareType, int prefetchSize,CyberPlayerManager.HttpDNS httpDns, String businessType) 视频文件预取
    static void stopPrefetch(String url) 停止某视频文件预取
    void forceCleanFilecache() 强制清空文件缓存区

    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,直播视频元信息回调
    静态变量名 描述
    MEDIA_INFO_AUDIO_RENDERING_START 10002,音频开始播放
    MEDIA_INFO_BAD_INTERLEAVING 800,音视频交叉打包不规范
    MEDIA_INFO_BUFFERING_END 702,停止缓冲
    MEDIA_INFO_BUFFERING_START 701,开始缓冲
    MEDIA_INFO_METADATA_UPDATE 802,元信息更新
    MEDIA_INFO_NOT_SEEKABLE 801,不可seek
    MEDIA_INFO_UNKNOWN 1,未知通知
    MEDIA_INFO_VIDEO_RENDERING_START 3,视频开始渲染
    MEDIA_INFO_VIDEO_ROTATION_CHANGED 10001,视频方向通知
    MEDIA_INFO_VIDEO_TRACK_LAGGING 700,视频lagging

    下载器相关

    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() 反注册缓存监听,释放资源
    上一篇
    Android高级播放器SDK-简介
    下一篇
    高级播放器快速进阶