package cn.edu.whut.springbear.course.service.live.util;
import cn.edu.whut.springbear.course.common.util.alogrithm.MD5Utils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import java.io.*;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
/**
* 欢拓云 SDK
*/
public class MTCloud {
/**
* 合作方ID: 合作方在欢拓平台的唯一ID
*/
public String openID = "43873";
/**
* 合作方秘钥: 合作方ID对应的参数加密秘钥
*/
public String openToken = "1f3681df876eb31474be8c479b9f1ffe";
/**
* 欢拓API接口地址
*/
public String restUrl = "http://api.talk-fun.com/portal.php";
public String restUrl2 = "http://api-1.talk-fun.com/portal.php";
/**
* 返回的数据格式
*/
public String format = "json";
/**
* SDK版本号(请勿修改)
*/
public String version = "java.1.6";
/**
* 是否开启测试
*/
public boolean debug = false;
/**
* 状态码
*/
public static final int CODE_FAIL = -1; //失败
public static final int CODE_SUCCESS = 0; //成功
public static final int CODE_PARAM_ERROR = 10; //参数错误
public static final int CODE_VIDEO_UPLOADED = 1281; //视频已上传过
public static final int CODE_SIGN_EXPIRE = 10002; //签名过期
public static final int CODE_SIGN_ERROR = 10003; //签名验证错误
/**
* 角色定义
*/
public static final String ROLE_GUEST = "guest"; //游客
public static final String ROLE_USER = "user"; //普通用户
public static final String ROLE_ADMIN = "admin"; //管理员
public static final String ROLE_SUPER_ADMIN = "spadmin"; //超级管理员
/**
* 用户定义
*/
public static final int USER_GENDER_UNKNOW = 0; //未知生物
public static final int USER_GENDER_MALE = 1; //男性
public static final int USER_GENDER_FEMALE = 2; //女性
/**
* 主播账号类型
*/
public static final int ACCOUNT_TYPE_MT = 1; //欢拓账号类型
public static final int ACCOUNT_TYPE_THIRD = 2; //第三方账号类型
/**
* 语音常量
*/
public static final int VOICE_FLOW_CLOUD = 1; //语音云
public static final int VOICE_FLOW_LISTEN_ONLY = 2; //只听
public static final int VOICE_FLOW_AUTO = 3; //自动模式
/**
* 直播常量
*/
public static final int LIVE_NO_PLAYBACK = 0; //没有回放记录
public static final int LIVE_HAS_PLAYBACK = 1; //有回放记录
public static final int LIVE_PLAYBACK_NOT_CHECK_USER_IP = 0; //回放地址,不限制播放用户IP
public static final int LIVE_PLAYBACK_CHECK_USER_IP = 1; //回放地址,限制播放用户IP
/**
* 外部推流分辨率类型
*/
public static final int CUSTOM_RTMP_RATIO_4_3 = 1; // 4:3比例
public static final int CUSTOM_RTMP_RATIO_16_9 = 2; // 16:9比例
public MTCloud() {
}
public MTCloud(String openID, String openToken) {
this.openID = openID.trim();
this.openToken = openToken.trim();
}
/**
* 设置欢拓数据响应的格式
* <p>
* $format
*/
public void setFormat(String format) {
this.format = format;
}
/**
* 获取用户access_token,access_key及房间地址(替代roomGetUrl方法)
* <p>
* uid 合作方系统内的用户的唯一ID
* nickname 用户的昵称
* role 用户的角色
* roomid 房间ID
* expire 返回的地址的有效时间
*
* @return String
* @throws Exception
*/
public String userAccess(String uid, String nickname, String role, String roomid, int expire) throws Exception {
HashMap<Object, Object> options = new HashMap<Object, Object>();
return this.userAccess(uid, nickname, role, roomid, expire, options);
}
/**
* 用户进入直播间
* <p>
* uid 合作方系统内的用户的唯一ID
* nickname 用户的昵称
* role 用户的角色
* roomid 房间ID
* expire 返回的地址的有效时间
* options 可选参数
*
* @return
* @throws Exception
*/
public String userAccess(String uid, String nickname, String role, String roomid, int expire, HashMap<Object, Object> options) throws Exception {
if (!options.containsKey("gender")) {
//用户性别
options.put("gender", MTCloud.USER_GENDER_UNKNOW);
}
if (!options.containsKey("avatar")) {
//用户头像
options.put("avatar", "");
}
HashMap<Object, Object> params = new HashMap<Object, Object>();
params.put("uid", uid);
params.put("nickname", nickname);
params.put("role", role);
params.put("roomid", roomid);
params.put("expire", expire);
params.put("options", options);
return this.call("user.access", params);
}
/**
* 用户进入点播
* <p>
* uid 合作方系统内的用户的唯一ID
* nickname 用户的昵称
* role 用户的角色
* liveid 直播ID
* expire 返回的地址的有效时间
*
* @return
* @throws Exception
*/
public String userAccessPlayback(String uid, String nickname, String role, String liveid, int expire) throws Exception {
HashMap<Object, Object> options = new HashMap<Object, Object>();
return this.userAccessPlayback(uid, nickname, role, liveid, expire, options);
}
/**
* 用户进入点播
* <p>
* uid 合作方系统内的用户的唯一ID
* nickname 用户的昵称
* role 用户的角色
* liveid 直播ID
* expire 返回的地址的有效时间
* options 可选参数
*
* @return
* @throws Exception
*/
public String userAccessPlayback(String uid, String nickname, String role, String liveid, int expire, HashMap<Object, Object> options) throws Exception {
if (!options.containsKey("gender")) {
//用户性别
options.put("gender", MTCloud.USER_GENDER_UNKNOW);
}
if (!options.containsKey("avatar")) {
//用户头像地址
options.put("avatar", "");
}
HashMap<Object, Object> params = new HashMap<Object, Object>();
params.put("uid", uid);
params.put("nickname", nickname);
params.put("role", role);
params.put("liveid", liveid);
params.put("expire", expire);
params.put("options", options);
return this.call("user.access.playback", params);
}
/**
* 获取直播间地址
* <p>
* uid 合作方系统内的用户的唯一ID
* nickname 用户的昵称
* role 用户的角色
* roomid 房间ID
* expire 返回的地址的有效时间
*
* @return String
* @throws Exception
*/
public String userAccessUrl(String uid, String nickname, String role, String roomid, int expire) throws Exception {
String accessAuth = this.user
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源介绍】基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringCloud+Vue.js实现的硅谷课堂系统源码+项目说明.zip (420个子文件)
.env.development 104B
.editorconfig 243B
.eslintignore 34B
.eslintignore 11B
index.html 2KB
index.html 620B
favicon.ico 66KB
favicon.ico 4KB
MTCloud.java 137KB
LiveCourseServiceImpl.java 11KB
MessageServiceImpl.java 10KB
OrderInfoServiceImpl.java 8KB
CourseServiceImpl.java 8KB
LiveCourseConfigServiceImpl.java 6KB
CouponInfoServiceImpl.java 4KB
VodServiceImpl.java 4KB
CouponController.java 4KB
CourseController.java 4KB
WeChatServiceImpl.java 4KB
MenuServiceImpl.java 3KB
TeacherController.java 3KB
WeChatUserApiController.java 3KB
LiveCourseController.java 3KB
SubjectServiceImpl.java 3KB
CouponApiController.java 3KB
CouponInfo.java 3KB
VideoController.java 3KB
Course.java 3KB
TransferServiceImpl.java 3KB
VideoServiceImpl.java 3KB
ChapterController.java 3KB
MyBatisGenerator.java 3KB
MenuController.java 2KB
CourseService.java 2KB
OrderInfo.java 2KB
WechatApiController.java 2KB
Subject.java 2KB
PaymentInfo.java 2KB
Video.java 2KB
LiveCourseService.java 2KB
MD5Utils.java 2KB
UserInfo.java 2KB
SubjectController.java 2KB
OrderInfoService.java 2KB
LiveCourseGoods.java 2KB
LiveVisitor.java 2KB
OrderController.java 2KB
TeacherServiceImpl.java 2KB
JwtHelper.java 2KB
OrderDetail.java 2KB
CouponUse.java 2KB
VodController.java 2KB
LiveConfigController.java 2KB
CourseApiController.java 2KB
OrderApiController.java 2KB
VideoVisitor.java 2KB
CouponInfoMapper.java 2KB
CouponInfoVo.java 2KB
CourseDescription.java 2KB
Teacher.java 1KB
UserController.java 1KB
LiveCourse.java 1KB
LiveAccountController.java 1KB
LiveCourseAccountServiceImpl.java 1KB
CouponInfoService.java 1KB
BaseEntity.java 1KB
LiveCourseConfig.java 1KB
Swagger2.java 1KB
LiveCourseAccount.java 1KB
DateUtils.java 1KB
CouponFeignController.java 1KB
LiveCourseDescriptionServiceImpl.java 1KB
CourseVo.java 1KB
CourseFeignController.java 1KB
OrderFeignController.java 1KB
SHA1.java 1KB
CourseDescriptionMapper.java 1KB
Comment.java 1KB
TransferController.java 1KB
UserLoginInterceptor.java 1KB
VideoVisitorMapper.java 1KB
ChapterServiceImpl.java 1KB
MenuMapper.java 1KB
MessageService.java 1KB
Chapter.java 1KB
Menu.java 1KB
CouponUseServiceImpl.java 1KB
Result.java 1KB
CouponFeignClient.java 1KB
ChapterMapper.java 1KB
LiveCourseApiController.java 1KB
BaseMongoEntity.java 1KB
UserLoginLog.java 1KB
CourseFormVo.java 1KB
SubjectService.java 1KB
LiveCourseGoodsView.java 1KB
UserFeignController.java 1KB
LoginMvcConfigurer.java 1KB
VodApiController.java 1KB
LiveCourseFormVo.java 1021B
共 420 条
- 1
- 2
- 3
- 4
- 5
资源评论
北航程序员小C
- 粉丝: 2222
- 资源: 1823
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功