LYCAM+ 直播服务端JAVA SDK
该 SDK 适用于 JAVA 1.6 及其以上版本 ,基于LYCAM+官方直播API构建 。 若您的服务端是一个基于 JAVA 编写的网络程序,使用此 SDK ,能让您以非常便捷地方式接入我们的服务 ,同时也使得您的服务端更加轻盈 。
安装
基于 maven 构建
在项目根目录 pom.xml 文件中添加:
<dependency>
<groupId>tv.lycam</groupId>
<artifactId>lycamplus-java-sdk</artifactId>
<version>1.0.0</version>
</dependency>
基于 gradle 构建
在项目根目录 build.gradle 文件中添加:
compile group:'tv.lycam', name:'lycamplus-java-sdk', version: '1.0.0'
或者
compile 'tv.lycam:lycamplus-java-sdk:1.0.0'
使用
配置参数 并创建 SDK 实例
设置全局参数 ,包括必须的 appKey ,appSecret 和 masterSecret ,配置参数将会延至所有空间 。
String appKey = <您申请到的 AppKey>
String appSecret = <您申请到的 AppSecret>
String masterSecret = <您申请到的 masterSecret>
创建 SDK 实例 。
LycamPlus lycamPlus = new LycamPlus(appKey, appSecret, masterSercet);
User 对象
获取 User 对象并进行操作
userInstance = lycamPlus.getUserInstance();
1. 创建用户
创建用户到 LYCAM+ 系统中 ,以便用户操作 API 接口鉴权使用 。
...
UserRequestModel userRequestModel = new UserRequestModel();
userRequestModel.setUsername("lycam-test4");
userRequestModel.setPassword('123456789l');
...
UserResponseModel responseModel = userInstance.create(userRequestModel);
...
请求参数
请求参数传递 UserRequestModel 类型。 UserRequestModel 类型包含以下字段 :
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
Username | false | string | 用户名,长度为6-80位,如果为空将随机生成(唯一) |
Password | false | string | 用户密码,长度8-16位,如果为空将随机生成 |
false | string | 邮件地址 | |
Phone | false | string | 手机号码 11-20 位 |
Description | false | string | 描述 4-300个字符 |
DisplayName | false | string | 显示的昵称,2-20位 |
返回数据
接口返回 UserResponseModel 类型,UserResponseModel标识返回详细数据。UserResponseModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
Username | string | 用户名 |
UUID | string | 用户唯一身份标识 |
Password | string | 用户密码(如果密码为随机生成,才返回此字段) |
Success | bool | 成功标志,成功 true,失败 false |
2. 用户token获取
用户访问 LYCAM+ 资源操作接口(比如:推流)时需要用户鉴权,我们使用token进行验证 。
...
String uuid = "f6524e90-e055-11e6-9b86-4d1c174d4365";
long expires = 38000;
TokenResponseModel tokenResponseModel = userInstance.assume(uuid, expires);
...
请求参数
请求参数传递两个参数: string 和 long 类型。 string 类型用于标识用户的唯一ID, long 类型标识 token 过期的时间(单位:秒)。
请求参数 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
uuid | true | string | 用户唯一身份标识( 即uuid ) |
expires | true | long | token过期时间(单位:秒) |
返回数据
接口返回 TokenResponseModel 类型 , TokenResponseModel 标识返回详细数据。TokenResponseModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
Success | bool | 成功标志,成功 true,失败false |
Scope | string | 授权资源范围,* 表示所有资源 |
Token | json object | token对象 。包括 access_token,expires_in 字段等... |
Stream 对象
获取 Stream 对象并进行操作
...
streamInstance = lycamPlus.getStreamInstance();
...
1. 创建视频流
在 LYCAM+ 后台系统中创建一条视频流 。 用于返回给终端用户或实现您自己的业务 。
...
StreamRequestModel requestModel = new StreamRequestModel();
requestModel.setTitle("java test");
requestModel.setUser("f6524e90-e055-11e6-9b86-4d1c174d4365");
...
StreamResponseModel responseModel = streamInstance.create(requestModel);
...
请求参数
请求参数传递 StreamRequestModel 类型。 StreamRequestModel 类型包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
User | false | string | 用户唯一身份标识( 即uuid ) |
Title | false | string | 视频流标题 |
Description | false | string | 视频流描述 |
ThumbnailUrl | false | string | 视频流封面地址 |
StartLat | false | float | 开始视频的维度坐标 |
StartLon | false | float | 开始视频的经度坐标 |
Country | false | string | 国家 |
State | false | string | 省份 |
City | false | string | 城市 |
Privacy | false | bool | 是否私有视频( true是,false否 ) |
返回数据
接口返回 StreamResponseModel 类型,StreamResponseModel 标识返回详细数据。StreamResponseModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
StreamId | string | stramId ( 视频流标识 ) |
Status | string | 直播状态(live, over,ready) |
StreamUrls | json object | 视频播放资源列表 |
UploadUrl | string | 推流地址 |
ChatUrl | string | 消息服务器地址 |
ChatChannel | string | 消息服务器频道 |
ResourceUrl | string | 视屏 HTML 主页地址 |
Title | string | 视频流标题 |
Description | string | 视频流描述 |
ThumbnailUrl | string | 视频流封面地址 |
StartLat | float | 开始视频的维度坐标 |
StartLon | float | 开始视频的经度坐标 |
Country | string | 国家 |
State | string | 省份 |
City | string | 城市 |
Privacy | bool | 是否私有视频( true是,false否 ) |
2. 更新指定ID视频流
在 LYCAM+ 后台系统中更新指定 ID 视频流信息 。
...
String streamID = "775009d0-e06d-11e6-ba8a-a3de0ac619fb";
StreamRequestModel requestModel = new StreamRequestModel();
requestModel.setStartLat(90);
requestModel.setStartLon(90);
requestModel.setEndLat(180);
requestModel.setEndLon(220);
requestModel.setDescription("no description");
...
StreamResponseModel responseModel = streamInstance.update(streamID, requestModel);
...
请求参数
请求参数传递 string 类型 和 StreamRequestModel 类型。string 类型标识被更新的视频流 ID, StreamRequestModel 类型包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
Title | false | string | 视频流标题 |
Description | false | string | 视频流描述 |
ThumbnailUrl | false | string | 视频流封面地址 |
StartLat | false | float | 开始视频的维度坐标 |
StartLon | false | float | 开始视频的经度坐标 |
EndLat | false | float | 视频当前的维度坐标 |
EndLon | false | float | 视频当前的经度坐标 |
Country | false | string | 国家 |
State | false | string | 省份 |
City | false | string | 城市 |
Privacy | false | bool | 是否私有视频( true是,false否 ) |
返回数据
接口返回 StreamResponseModel 类型,StreamResponseModel 标识返回详细数据。StreamResponseModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
StreamId | string | stramId ( 视频流标识 ) |
Status | string | 直播状态(live, over,ready) |
StreamUrls | json object | 视频播放资源列表 |
UploadUrl | string | 推流地址 |
ChatUrl | string | 消息服务器地址 |
ChatChannel | string | 消息服务器频道 |
ResourceUrl | string | 视屏 HTML 主页地址 |
Title | string | 视频流标题 |
Description | string | 视频流描述 |
ThumbnailUrl | string | 视频流封面地址 |
Country | string | 国家 |
State | string | 省份 |
City | string | 城市 |
Privacy | bool | 是否私有视频( true是,false否 ) |
... | 其它视频流参数 |
3. 获取指定ID视频流信息
在 LYCAM+ 后台系统中获取指定 ID 的视频流 。 用于返回给终端用户或实现您自己的业务 。
...
String streamID = "775009d0-e06d-11e6-ba8a-a3de0ac619fb";
StreamResponseModel responseModel = streamInstance.show(streamID);
...
请求参数
请求参数传递 string 类型 , 用于标识视频流的ID。
请求参数 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
streamId | true | string | stramId ( 视频流标识 ) |
返回字段
接口返回 StreamResponseModel 类型,StreamResponseModel 标识返回详细数据。StreamResponseModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
StreamID | string | stramId ( 视频流标识 ) |
Status | string | 直播状态(live, over,ready) |
StreamUrls | json object | 视频播放资源列表 |
UploadUrl | string | 推流地址 |
ChatUrl | string | 消息服务器地址 |
ChatChannel | string | 消息服务器频道 |
ResourceUrl | string | 视屏 HTML 主页地址 |
Title | string | 视频流标题 |
Description | string | 视频流描述 |
ThumbnailUrl | string | 视频流封面地址 |
StartLat | float | 开始视频的维度坐标 |
StartLon | float | 开始视频的经度坐标 |
Country | string | 国家 |
State | string | 省份 |
City | string | 城市 |
Privacy | bool | 是否私有视频( true是,false否 ) |
4. 获取视频流列表
获取 Lycam+ 后台系统中视频流列表 。用于返回给终端用户或实现您自己的业务 。
...
PageModel pageModel = new PageModel();
pageModel.setResultsPerPage(2);
pageModel.setPage(3);
pageModel.setOrder(Order.DESC);
...
StreamResponseListModel listModel = streamInstance.getList(pageModel);
...
请求参数
请求参数传递 PageModel 类型 。 PageModel 包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
ResultsPerPage | false | int | 每页返回记录数 ,默认 10 行 |
Page | false | int | 返回第几页 ,默认第 1 页 |
Sort | false | Enum | 排序字段( id,description,created ) |
Order | false | Enum | 排序方向( asc,desc ) |
返回字段
接口返回 StreamResponseListModel 类型,StreamResponseListModel 标识返回详细数据。StreamResponseListModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
TotalItems | int | 记录总数 |
ResultsPerPage | int | 每一页数量 |
NextPageAvailable | bool | 是否有下一页 |
Items | array | 视频流清单数组 |
5. 获取指定时间前视频流列表
在 LYCAM+ 后台系统获取指定时间前的视频流列表 。 用于返回给终端用户或实现您自己的业务 。
...
PageModel pageModel = new PageModel();
pageModel.setResultsPerPage(2);
pageModel.setPage(2);
pageModel.setOrder(Order.DESC);
...
String tsStr = "2016-12-30 11:49:45";
Timestamp timestamp = Timestamp.valueOf(tsStr);
StreamResponseListModel listModel = streamInstance.getListSince(timestamp.getTime(), pageModel);
...
请求参数
请求参数传递 long 类型 和 PageModel 类型 。long 类型标识时间戳(单位:秒), PageModel 类型包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
ResultsPerPage | false | int | 每页返回记录数 ,默认 10 行 |
Page | false | int | 返回第几页 ,默认第 1 页 |
Sort | false | Enum | 排序字段( id,description,created ) |
Order | false | Enum | 排序方向( asc,desc ) |
返回字段
接口返回 StreamResponseListModel 类型,StreamResponseListModel 标识返回详细数据。StreamResponseListModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
TotalItems | int | 记录总数 |
ResultsPerPage | int | 每一页数量 |
NextPageAvailable | bool | 是否有下一页 |
Items | array | 视频流清单数组 |
6. 通过关键词搜索视频流
通过关键词在 LYCAM+ 后台系统获取视频流列表 。 用于返回给终端用户或实现您自己的业务 。
...
KeywordModel keywordModel = new KeywordModel();
keywordModel.setKeyword("test");
...
StreamSearchListModel listModel = streamInstance.getListByKeyword(keywordModel);
...
请求参数
请求参数传递 KeywordModel 类型 。 KeywordModel 包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
Keyword | true | string | 搜索关键词 |
ResultsPerPage | false | int | 每页返回记录数 ,默认 10 行 |
Page | false | int | 返回第几页 ,默认第 1 页 |
Sort | false | Enum | 排序字段( id,description,created ) |
Order | false | Enum | 排序方向( asc,desc ) |
返回字段
接口返回 StreamSearchListModel 类型,StreamSearchListModel 标识返回详细数据。StreamSearchListModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
TotalItems | int | 记录总数 |
ResultsPerPage | int | 每一页数量 |
NextPageAvailable | bool | 是否有下一页 |
Items | array | 视频流清单数组 |
7. 通过地理位置搜索视频流
通过地理位置在 LYCAM+ 后台系统获取视频流列表 。 用于返回给终端用户或实现您自己的业务 。
...
LocationModel locationModel = new LocationModel();
locationModel.setLat(90);
locationModel.setLon(90);
locationModel.setRadius(100);
...
StreamSearchListModel listModel = streamInstance.getListByLocation(locationModel);
...
请求参数
请求参数传递 LocationModel 类型 。LocationModel 包含以下字段:
字段名称 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
Lon | true | float | 经度 |
Lat | true | float | 纬度 |
Radius | true | float | 搜索半径 |
ResultsPerPage | false | int | 每页返回记录数 ,默认 10 行 |
Page | false | int | 返回第几页 ,默认第 1 页 |
Sort | false | Enum | 排序字段( id,description,created ) |
Order | false | Enum | 排序方向( asc,desc ) |
返回字段
接口返回 StreamSearchListModel 类型,StreamSearchListModel 标识返回详细数据。StreamSearchListModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
TotalItems | int | 记录总数 |
ResultsPerPage | int | 每一页数量 |
NextPageAvailable | bool | 是否有下一页 |
Items | array | 视频流清单数组 |
8. 销毁指定ID视频流
销毁在 LYCAM+ 后台系统中指定ID的视频流 。
...
String streamID = "775009d0-e06d-11e6-ba8a-a3de0ac619fb";
SuccessModel successModel = streamInstance.delete(streamID);
...
请求参数
请求参数传递 string 类型 , 用于标识视频流的ID。
请求参数 | 是否必须 | 数据类型 | 参数说明 |
---|---|---|---|
streamID | true | string | streamId ( 视频流标识 ) |
返回字段
接口返回 SuccessModel 类型,SuccessModel 标识返回详细数据。SuccessModel 类型包含以下字段:
字段名称 | 数据类型 | 参数说明 |
---|---|---|
Success | bool | 成功标志 。成功 true,失败 false |