lycamplus-java-sdk

LYCAM+ Live Cloud Server Library For Java

License

License

Categories

Categories

Java Languages
GroupId

GroupId

tv.lycam
ArtifactId

ArtifactId

lycamplus-java-sdk
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

lycamplus-java-sdk
LYCAM+ Live Cloud Server Library For Java
Project URL

Project URL

https://github.com/lycam-dev/lycamplus-java-sdk
Source Code Management

Source Code Management

https://github.com/lycam-dev/lycamplus-java-sdk

Download lycamplus-java-sdk

How to add to project

<!-- https://jarcasting.com/artifacts/tv.lycam/lycamplus-java-sdk/ -->
<dependency>
    <groupId>tv.lycam</groupId>
    <artifactId>lycamplus-java-sdk</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/tv.lycam/lycamplus-java-sdk/
implementation 'tv.lycam:lycamplus-java-sdk:1.0.0'
// https://jarcasting.com/artifacts/tv.lycam/lycamplus-java-sdk/
implementation ("tv.lycam:lycamplus-java-sdk:1.0.0")
'tv.lycam:lycamplus-java-sdk:jar:1.0.0'
<dependency org="tv.lycam" name="lycamplus-java-sdk" rev="1.0.0">
  <artifact name="lycamplus-java-sdk" type="jar" />
</dependency>
@Grapes(
@Grab(group='tv.lycam', module='lycamplus-java-sdk', version='1.0.0')
)
libraryDependencies += "tv.lycam" % "lycamplus-java-sdk" % "1.0.0"
[tv.lycam/lycamplus-java-sdk "1.0.0"]

Dependencies

compile (3)

Group / Artifact Type Version
com.github.scribejava : scribejava-apis jar 3.2.0
com.squareup.okhttp3 : okhttp jar 3.5.0
com.google.code.gson : gson jar 2.6.2

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

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位,如果为空将随机生成
Email 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

Versions

Version
1.0.0
0.1.1
0.1.0