本文介绍Android 推拉流SDK 控制器内所有API方法,及错误码或枚举
- 控制器是控制推流或播放器的所有功能,具体功能及使用方式请查看demo或开发指南。
- 监听回调是指功能操作、状态、错误等SDK发起的异步监听回调。
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) |
- 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.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() |
倍速切换按钮点击回调 |
方法 |
说明 |
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 |
-https://cloud.zmengzhu.com/doc/live
- MZGoodsListExternalDto商品列表外层model
变量 |
说明 |
list |
商品数据列表 |
total |
商品总数 |
变量 |
header 2 |
id |
商品id |
name |
商品名称 |
type |
1:自营 2:代销 3:淘宝 4:微店 5:其它 |
uid |
用户id |
price |
价格 |
pic |
图片 |
buy_url |
商品地址 |
变量 |
说明 |
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 控制台配置信息
|
变量 |
说明 |
type |
配置信息类型 |
is_open |
是否开启 |
变量 |
说明 |
PlayInfoDto.DISABLE_CHAT |
全体禁言是否开启 |
PlayInfoDto.BARRAGE |
弹幕功能是否开启 |
PlayInfoDto.RECORD_SCREEN |
防录屏功能是否开启 |
PlayInfoDto.VOTE |
投票功能是否开启 |
PlayInfoDto.SIGN |
签到功能是否开启 |
PlayInfoDto.DOCUMENTS |
文档功能是否开启 |
PlayInfoDto.CHAT_HISTORY |
是否请求历史聊天信息 |
变量 |
说明 |
msg_online_srv |
长连接地址 |
msg_token |
消息token |
变量 |
说明 |
pub_url |
发消息地址 |
receive_url |
收消息地址 |
room |
房间id |
chat_uid |
自己在直播间内的id |
变量 |
说明 |
url |
播放url |
http_url |
http地址 |
变量 |
说明 |
ticket_id |
活动id |
ChatConfDto |
发收消息相关 |
MsgConfDto |
长连接相关 |
变量 |
说明 |
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) |
监听发送消息结果 |
值 |
说明 |
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 |
黏性沉浸式,从顶部下滑出现状态栏和导航栏过几秒后会缩回去 |
值 |
说明 |
MEDIA_QUALITY_SMOOTH |
流畅 |
MEDIA_QUALITY_MEDIUM |
清晰 |
MEDIA_QUALITY_HIGH |
高清 |
MEDIA_QUALITY_SUPER |
超清 |
MEDIA_QUALITY_BD |
1080P |
值 |
说明 |
TYPE_LIVE |
直播 |
TYPE_VIDEO |
点播 |
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毫秒 |
方法 |
说明 |
getInstance(Context context) |
单列获取对象 |
registerListener(String key, DLNAController.DLNAStateListener listener) |
注册监听 |
unRegisterListener(String key) |
取消注册 |
initPresenter(Context context) |
初始化 |
onExecute(Object... obj) |
状态切换 |
setUrl(RemoteItem itemurl1) |
设置cling服务 |
onDestroy() |
结束时销毁 |
值 |
说明 |
PLAYER_DLNA |
开始投屏 |
STOP_DLNA |
结束投屏 |
PAUSE_DLNA |
暂停投屏 |