API文档 - mengzhuSDK/MengzhuSDK_Android GitHub Wiki

本文介绍Android 推拉流SDK 控制器内所有API方法,及错误码或枚举

1. 控制器API及监听回调说明

  • 控制器是控制推流或播放器的所有功能,具体功能及使用方式请查看demo或开发指南。
  • 监听回调是指功能操作、状态、错误等SDK发起的异步监听回调。

1. 1推流控制器API及回调说明

1.1.1MZPushManager管理器API

API方法 API说明
void initPushLive(StreamLiveCameraView liveCameraView) 初始化
void setStreamingListener(PushStreamingListener streamingListener) 设置推流监听
void setPushUrl(String url) 初始化传入url
void startStreaming() 开始推流
void stopStreaming() 停止推流
void startRecord() 开始录制视频
void stopRecord() 停止录制
void cutFilter() 切换滤镜
void swapCamera() 切换摄像头
void screenShct() 截帧
int getAVSpeed() AVSpeed 推流速度 和网络相关
float getSendBufferFreePercent() 获取BufferFreePercent
void setMirror(boolean isEnableMirror,boolean isEnablePreviewMirror,boolean isEnableStreamMirror) 镜像:isEnableMirror 是否启用镜像功能 总开关 isEnablePreviewMirror 是否开启预览镜像 isEnableStreamMirror 是否开启推流镜像
void reSetVideoBitrate(int bitrate) 推流过程中,重新设置码率
void reSetVideoFPS(int fps) 推流过程中,重新设置帧率
void toggleFlashLight() 摄像头开关闪光灯
void setZoomByPercent(float targetPercent) 摄像头焦距 [0.0f,1.0f]
boolean isRecord() 是否在录制
boolean isStreaming() 是否推流
void destroy() 销毁推流
void StartorStopAudio(boolean var) 静音(默认关闭false)

1.1.2回调说明

  • PushStreamingListener 推流回调
方法 说明
void onScreenShotResult(Bitmap bitmap) 截帧回调
void onOpenConnectionResult(int result) 开始连接回调 result 0成功 1 失败
void onWriteError(int errno) 写入错误回调 查看错误列表
void onCloseConnectionResult(int result) 关闭推流连接 result 0成功 1 失败
void onReConnecting() 推流正在重连
void onReConnectFail() 推流重新连接失败
onReConnectSuccess() 推流重新连接成功,开始推流

1. 2播放控制器API及回调说明

1.2.1 MZPlayerManager管理器API

MZPlayerManager管理类是对StreamLiveCameraView控件的业务封装。其StreamLiveCameraView控件中包含的控制方法都已在MZPlayerManager实现并封装建议接入者使用 MZPlayerManager类,因为内部有处理一些容错及简单业务处理。如需使用StreamLiveCameraView请查看javadoc。

API方法 API说明
MZPlayerManager init(MZPlayerView view); 初始化
void onResume(); Activity.onResume() 里调用
void onPause(); Activity.onPause() 里调用
int onDestroy(); Activity.onDestroy() 里调用
boolean handleVolumeKey(int keyCode); 处理音量键,避免外部按音量键后导航栏和状态栏显示出来退不回去的状态
boolean onBackPressed(); 回退,全屏时退回竖屏
MZPlayerManager setBroadcastType(int type, boolean isSound); 设置播放类型 TYPE_LIVE=直播 TYPE_VIDEO=点播视频 TYPE_LITTLE=无视频
MZPlayerManager switchVideoPath(String url); 切换视频
MZPlayerManager switchVideoPath(Uri uri); 切换视频
MZPlayerManager setVideoPath(String url); 设置播放资源
MZPlayerManager setVideoPath(Uri uri); 设置播放资源
MZPlayerManager setVideoPath(Uri uri); 设置播放资源
MZPlayerManager setVideoPathList(List uris); 设置播放资源List
MZPlayerManager setTitle(String title); 设置标题,全屏的时候可见
MZPlayerManager alwaysFullScreen(); 设置只显示全屏状态
void start(); 开始播放
void startOrStopRipple(boolean isStart); 开始停止播放 isStart true=播放 false=停止
void reload(); 重新开始
boolean isPlaying(); 是否正在播放
void pause(); 暂停
boolean isPause(); 是否暂停
void seekTo(long position); 设置播放进度 position 位置
void stop(); 停止
void reset(); 重置状态
void configurationChanged(Configuration newConfig); 屏幕翻转后的处理
MZPlayerManager setMediaQuality(@MZPlayerView.MediaQuality int quality); 选择视频源
void setEventListener(PlayerEventListener listener); 设置播放器监听
void setOnStartWifiListener(onStartWifiListener onStartWifiListener); 设置网络改变后提醒
void setOnToggleLockListener(onToggleLockListener mToggleLockListener); 设置视频被锁定
void setOnSingleTouchListener(onSingleTouchListener mOnSingleTouchListener); 设置视频被点击的事件
setPlayerReConnectViewShow(boolean isShow) 设置视频异常中断情况下是否显示重连按钮
setNetWorkConnectReload(boolean netWorkConnectReload) 设置断网中断之后是否重连
void setPlayerControlView(MZBasePlayerControlView playerControlView) 自定义播放器播控组件

1.2.2 PlayerEventListener回调说明

方法 说明
void hideAllEvent(); 隐藏上下工具栏
void showAllEvent(); 显示上下工具栏
void onBackClick(boolean isBack); 返回按钮点击事件 isBack true 返回 false=退出全屏
void onPausePlayer(); 暂停播放回调
void onStartPlayer(); 开始播放回调
void onForbid(boolean isForbid); 锁屏点击回调 isForbid true=锁屏 false=解锁
onSwitchFullBtnClick(int orientation) 全屏切换按钮点击回调
onTvClick() 投屏按钮点击回调
onSpeedClick() 倍速切换按钮点击回调

1.3业务功能控制器API及回调说明

1.3.1 MZApiRequest管理器

方法 说明
public void createRequest(Context context, String apiType) 创建连接apiType=业务类型
public void startData(String apiType,Object... obj ) 启动数据获取apiType=业务类型 obj业务传参
public void setResultListener(MZApiDataListener listener) 注册监听 listener=回调监听

常量介绍

常量 说明 返回实体类
API_TYPE_PLAY_INFO 播放详情 PlayInfoDto
API_TYPE_GOODS_LIST 商品列表 MZGoodsListExternalDto
API_TYPE_ONLINE_USER_LIST 在线观众 List
API_TYPE_ANCHOR_INFO 主播信息 AnchorInfoDto
API_TYPE_ROOT_PRAISE 点赞 状态码
API_TYPE_LIVE_CREATE 创建直播 StartCreateDto
API_TYPE_LIVE_STREAM 获取推流 StartBroadcastInfoDto
API_TYPE_LIVE_STOP 停止直播 EndBroadcastInfoDto
API_TYPE_ROOM_FORBIDDEN 单体禁言 状态码
API_CHECK_PUSH 检测频道下是否有直播 MZCheckPushDto
API_TYPE_ROOM_ALLOWCHATALL 全体禁言 状态码
API_TYPE_VOTE_INFO 获取投票信息 VoteInfoDto
API_TYPE_VOTE_OPTION_LIST 获取投票选项列表 List
API_TYPE_VOTE_COMMIT 提交投票选项 状态码
API_TYPE_GIFT_LIST 获取自定义礼物列表 List
API_TYPE_SEND_GIFT 发送礼物 状态码
API_TYPE_QA_LIST 获取问答列表 QAListDto
API_TYPE_SUBMIT_ASK 问答提交问题 SubmitQADto
API_GET_ALL_SETTING 获取直播间所有营销配置开关 MZAllSettingDto
API_GET_F_CODE_LIST 获取f码列表 List
API_GET_WHITE_LIST 获取白名单列表 MZWhiteListDto
API_GET_CATEGORY_LIST 获取分类列表 List
API_GET_WHITE_LIST_DEL 删除白名单选项 状态码
API_GET_WHITE_USER 获取白名单里用户列表 MZWhiteUserDto
API_ADD_WHITE_USER 添加白名单用户 MZAddWhiteUserDto
API_DEL_WHITE_USER 删除白名单用户 状态码
API_CLEAR_WHITE_USER 清空白名单用户 状态码
API_WHITE_CREATE 创建白名单表单 MZWhiteCreateDto
API_F_CODE_ADD f码添加 状态码
API_F_CODE_CREATE 新建f码表单 MZCreateFCodeDto
API_GET_UN_F_CODE_LIST 获取未使用f码列表 MZUnUseFCodeDto
API_KICK_USER 踢出用户 状态码
API_RESTORE_KICK_USER 恢复踢出用户 状态码
API_GET_KICKED_USERS 获取踢出列表 List
API_GET_SILENCED_USERS 获取禁言列表 MZSilenceOrKickUserDto
API_GET_CHAT_STATE 获取用户禁言状态 MZUserChatStateDto
API_CREATE_RED_PACKET 创建并发送红包 MZCreateRedPacketDto
API_CHECK_RED_PACKET_STATE 查询红包状态 MZRedPacketStateDto
API_OBTAIN_RED_PACKET 领取红包
API_GET_RED_PACKET_HISTORY 红包领取记录 MZRedPacketHistoryDto

API接口文档地址

-https://cloud.zmengzhu.com/doc/live

商品列表数据介绍

  • MZGoodsListExternalDto商品列表外层model
变量 说明
list 商品数据列表
total 商品总数
  • MZGoodsListDto商品列表
变量 header 2
id 商品id
name 商品名称
type 1:自营 2:代销 3:淘宝 4:微店 5:其它
uid 用户id
price 价格
pic 图片
buy_url 商品地址

视频详情

  • PlayInfoDto介绍
变量 说明
channel_id 频道id
cover 封面
status 直播状态 1:直播 2:回放 3:断流
live_type 直播类型 0:视频 1:语音
popular 人气值
msg_config 获取消息相关配置
chat_config 发送聊天消息相关配置
video 视频流相关信息
view_mode 观看权限 1:免费 2:vip 3:付费 4:密码 5:白名单观看 6:F码观看
ticket_id 活动ticket id
user_status 用户状态 1:正常 2:被踢出 3:禁言
like_num 用户点赞数量
uv 活动总UV值
chat_uid 聊天uid
live_style 直播样式 0:横屏 1:竖屏
right List 控制台配置信息
  • RightBean介绍
变量 说明
type 配置信息类型
is_open 是否开启
  • type类型介绍
变量 说明
PlayInfoDto.DISABLE_CHAT 全体禁言是否开启
PlayInfoDto.BARRAGE 弹幕功能是否开启
PlayInfoDto.RECORD_SCREEN 防录屏功能是否开启
PlayInfoDto.VOTE 投票功能是否开启
PlayInfoDto.SIGN 签到功能是否开启
PlayInfoDto.DOCUMENTS 文档功能是否开启
PlayInfoDto.CHAT_HISTORY 是否请求历史聊天信息
  • MsgConfDto介绍
变量 说明
msg_online_srv 长连接地址
msg_token 消息token
  • ChatConfDto介绍
变量 说明
pub_url 发消息地址
receive_url 收消息地址
room 房间id
chat_uid 自己在直播间内的id
  • VideoDto介绍
变量 说明
url 播放url
http_url http地址

推流详情

  • StartBroadcastInfoDto介绍
变量 说明
ticket_id 活动id
ChatConfDto 发收消息相关
MsgConfDto 长连接相关
  • EndBroadcastInfoDto介绍
变量 说明
ticket_id 活动id
uv 活动总UV值
duration 时长

1.3.2 MZChatManager 消息管理器介绍

方法 说明
static MZChatManager getInstance(Context context) 单例方法
void registerListener(String key, MZChatMessagerListener listener) 监听消息
void startHistory(PlayInfoDto dto) 获取历史消息且启动消息
void nextHistory(String last_id) 下一页历史消息
void connectChatServer(PlayInfoDto dto) 单独启动消息
void destroyChat() 销毁消息
void sendMessageExecute(Object... obj) 发送消息
void registerAtPushListener(IBasePresenterLinstener listener) 监听发送消息结果
  • ChatMessageDto介绍
变量 说明
id 消息id
text 消息内容

2.枚举、状态常亮、错误码描述

2.1播放器枚举介绍

  • Configuration
说明
SYSTEM_UI_FLAG_LAYOUT_STABLE 维持一个稳定的布局
SYSTEM_UI_FLAG_FULLSCREEN Activity全屏显示,且状态栏被隐藏覆盖掉
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住
SYSTEM_UI_FLAG_HIDE_NAVIGATION 隐藏虚拟按键(导航栏)
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
SYSTEM_UI_FLAG_IMMERSIVE 沉浸式,从顶部下滑出现状态栏和导航栏会固定住
SYSTEM_UI_FLAG_IMMERSIVE_STICKY 黏性沉浸式,从顶部下滑出现状态栏和导航栏过几秒后会缩回去
  • MZPlayerView.MediaQualit
说明
MEDIA_QUALITY_SMOOTH 流畅
MEDIA_QUALITY_MEDIUM 清晰
MEDIA_QUALITY_HIGH 高清
MEDIA_QUALITY_SUPER 超清
MEDIA_QUALITY_BD 1080P
  • BroadcastType
说明
TYPE_LIVE 直播
TYPE_VIDEO 点播

3.下载器API

3.1 MZDownloadManager 功能管理器

方法 说明
MZDownloadManager getInstance(); 单例方法
MZDownloadManager init(Object listener); 下载器初始化 listener监听事件
DownloadTaskBiz getDownloadTaskBiz(); 获取数据管理器
MZDownloadContrller getDownloadContrller(); 获取下载控制器
void onStartPlayer(); 开始播放回调

3.2 DownloadTaskBiz 数据管理器

方法 说明
DownloadEntity getHttpDownloadInfo( String url); 单任务下载的信息
List getDownloadEntity(String downloadUrl); 通过下载链接获取下载实体
DownloadTaskBiz getDownloadTaskBiz(); 获取数据管理器
DownloadEntity getDownloadEntity(long taskId); 获取任务实体
List getTaskList(); 全部任务信息
List getTaskList(int sort); 全部任务信息sort=1升序 sort=2降序
List getAllNotCompleteTask(); 获取所有未完成的普通下载任务
List getDRunningTask(); 获取执行中的任务
List getAllCompleteTask(int page, int num); 分页获取所有已经完成的普通任务page 当前页,不能小于1 num 每页数量,不能小于1
List getAllNotCompleteTask(int page, int num); 分页获取所有未完成的普通下载任务page 当前页,不能小于1 num 每页数量,不能小于1
List getTaskList(int page, int num); 分页获取所有普通下载任务page 当前页,不能小于1 num 每页数量,不能小于1
boolean taskExists(String downloadUrl); 下载任务是否存在

3.3 MZDownloadContrller 下载控制器

方法 说明
long startDownload(String url, String storePath); 开始下载url:下载地址 storePath:本地路径
long startDownload(String url, String storePath,String name,String cover,String ticketID); 下载输入参数url:下载地址 storePath:本地路径 name:视频名 cover:视频图片 ticketID:视频id
void unRegisterObserver(); 取消下载监听
void resumeDownload(long taskID); 已有taskid恢复下载
void setProgress(long taskID,int progress); 设置下载起始位置
void stopDownload(long taskID); 停止已有任务
void reStart(long taskID); 重新下载
void cancelDownload(long taskID); 取消下载任务
void downloadSpeed(int speed); 设置最大下载速度
void stopAllTask(Context context); 停止所有正在下载的任务,并清空等待队列
void resumeAllTask(); 恢复所有正在下载的任务
void removeTask(long taskID,boolean removeFile); 删除单个任务 removeFile=true:不仅删除任务数据库记录,还会删除已经完成的文件 removeFile=false:如果任务已经完成,只删除任务数据库记录,
void removeAllTask(boolean removeFile); 删除所有任务 removeFile=true:不仅删除任务数据库记录,还会删除已经完成的文件 removeFile=false:如果任务已经完成,只删除任务数据库记录,

3.4 NormalTaskListener下载监听

方法 说明
void onWait(DownloadTask task) 队列已经满了,继续创建任务,将会回调该方法
void onPre(DownloadTask task) 预处理,有时有些地址链接比较慢,这时可以先在这个地方出来一些界面上的UI,如按钮的状态。在这个回调中,任务是获取不到文件大小,下载速度等参数
void onTaskPre(DownloadTask task) 任务预加载完成
void onTaskResume(DownloadTask task) 任务恢复下载
void onTaskStart(DownloadTask task) 任务开始
void onTaskStop(DownloadTask task) 任务停止
void onTaskCancel(DownloadTask task) 任务取消
void onTaskFail(DownloadTask task) 任务失败
void onTaskFail(DownloadTask task, Exception e) 任务失败
void onTaskComplete(DownloadTask task) 任务完成
void onTaskRunning(DownloadTask task) 任务执行中

3.5 MZDownload_config.xml 配置文件

方法 说明
useAriaCrashHandler 是否使用MZDownloadCrashHandler来捕获异常,异常日志保存在:/mnt/sdcard/Android/data/{package_name}/files/log/
logLevel 设置MZDownload的日志级别,{@link ALog#LOG_LEVEL_VERBOSE}
netCheck 是否检查网络 true: 检查网络,false: 不检查网络
useBroadcast 除非无法使用注解,否则不建议使用广播来接受任务状态,true:使用广播接收任务状态,false:不适用广播接收状态
notNetRetry 断网的时候是否重试,true:断网也重试;false:断网不重试,直接走失败的回调
maxSpeed 设置任务最大下载速度,0表示不限速,单位为:kb
useBlock 多线程下载是否使用块下载模式,{@code true}使用,{@code false}不使用
threadNum 设置下载线程数,下载线程数不能小于1
maxTaskNum 设置下载队列最大任务数, 默认为2
reTryNum 设置下载失败,重试次数,默认为10
reTryInterval 设置重试间隔,单位为毫秒,默认2000毫秒
connectTimeOut 设置url连接超时时间,单位为毫秒,默认5000毫秒
iOTimeOut 设置IO流读取时间,单位为毫秒,默认20000毫秒,该时间不能少于10000毫秒
buffSize 设置写文件buff大小,该数值大小不能小于2048,数值变小,下载速度会变慢
ca 设置https ca 证书信息;path 为assets目录下的CA证书完整路径,name 为CA证书名
convertSpeed 是否需要转换速度单位,转换完成后为:1b/s、1kb/s、1mb/s、1gb/s、1tb/s,如果不需要将返回byte长度
queueMod 执行队列类型,见com.mengzhu.sdk.download.core.QueueMod,默认类型为wait
updateInterval 进度更新更新间隔,默认1000毫秒

4.DLAN投屏API

4.1 DLNAController 投屏管理类

方法 说明
getInstance(Context context) 单列获取对象
registerListener(String key, DLNAController.DLNAStateListener listener) 注册监听
unRegisterListener(String key) 取消注册
initPresenter(Context context) 初始化
onExecute(Object... obj) 状态切换
setUrl(RemoteItem itemurl1) 设置cling服务
onDestroy() 结束时销毁

4.2 DLNAController 状态常量

说明
PLAYER_DLNA 开始投屏
STOP_DLNA 结束投屏
PAUSE_DLNA 暂停投屏
⚠️ **GitHub.com Fallback** ⚠️