Java SDK使用说明

本文介绍视频直播服务端Java SDK的使用方法和示例代码。

前提条件

  • 创建RAM用户并授权。访问视频直播API需要RAM用户拥有对应的权限,具体授权操作可参见创建RAM用户并授权

  • 已获取访问密钥(AccessKey)。服务端接口通过访问密钥进行身份验证,为RAM用户生成访问密钥请参见创建AccessKey

  • 已完成Java 环境配置,需要Java 1.6及以上版本。

使用SDK

安装

此处以Maven安装方式进行举例,在项目pom.xml文件中引入SDK:

<!-- 阿里云核心SDK -->
<dependency>    
    <groupId>com.aliyun</groupId>    
    <artifactId>aliyun-java-sdk-core</artifactId>    
    <version>4.6.1</version>
</dependency>
<!-- 视频直播SDK -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-live</artifactId>
    <version>3.9.59</version>
</dependency>

使用

以下示例代码实现了使用SDK查询直播截图配置的功能。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.live.model.v20161101.DescribeLiveSnapshotConfigRequest;
import com.aliyuncs.live.model.v20161101.DescribeLiveSnapshotConfigResponse;
import com.aliyuncs.profile.DefaultProfile;

public class SdkUseDemo {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");        
        IAcsClient client = new DefaultAcsClient(profile);
        DescribeLiveSnapshotConfigRequest describeLiveStreamSnapshotInfoRequest=new DescribeLiveSnapshotConfigRequest();
        describeLiveStreamSnapshotInfoRequest.setDomainName("<DomainName>");
        DescribeLiveSnapshotConfigResponse describeLiveSnapshotConfigResponse = null;
        try {
            describeLiveSnapshotConfigResponse = client.getAcsResponse(describeLiveStreamSnapshotInfoRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }

    }

}
说明
  • 您可以使用该示例代码进行测试,测试时需将“<>”内容替换成实际使用的值。

  • <regionId>为地域ID,地域ID获取可参见服务接入点

  • <ALIBABA_CLOUD_ACCESS_KEY_ID>与<ALIBABA_CLOUD_ACCESS_KEY_SECRET>为访问密钥,如果您还未拥有访问密钥,请参见本文档前提条件相关内容。

  • DescribeLiveSnapshotConfigRequest为查询截图配置对应请求类。

  • DescribeLiveSnapshotConfigResponse为查询截图配置对应响应类。

  • 请求参数以及响应内容说明可参见APIDescribeLiveSnapshotConfig - 查询域名下的截图配置

  • 调用API有QPS限制,关于API的QPS限制说明请参见流控信息

在以上示例中DescribeLiveSnapshotConfigResponse为反序列化后的响应对象,某些时候您可能需要直接获取响应结果HttpResponse,不需要进行反序列化,在此情况下只需更换调用方法即可。

HttpResponse httpResponse=client.doAction(describeLiveStreamSnapshotInfoRequest);
int status=httpResponse.getStatus();

使用说明:

  • 当HTTP status大于等于200且小于300时,表示API调用成功。

  • 当HTTP status大于等于300且小于500时,服务端SDK会提示ClientException,表示客户端错误。

  • 当HTTP status大于等于500时,服务端SDK会提示ServerException,表示服务器端错误。

client.getAcsResponseclient.doAction两个方法都可以使用,您可以根据您业务的实际情况采用。

建议您将访问密钥保存至配置文件,在使用时进行读取。如果您的项目基于SpringBoot搭建,可参考以下示例代码:

# 客户端请求的ak、sk,就是应用的密钥信息
live.accessKeyId=<yourAccessKeyId>
live.accessKeySecret=<yourAccessKeySecret>
@Value("${live.accessKeyId}")
private String accessKeyId;

@Value("${live.accessKeySecret}")
private String accessKeySecret;

重要

在使用视频直播SDK时遵循APIRequest为API请求类,APIResponse为API响应类。

此处列举几个常用API。

API

请求类

响应类

DescribeLiveSnapshotConfig - 查询域名下的截图配置

DescribeLiveSnapshotConfigRequest

DescribeLiveSnapshotConfigResponse

AddLiveAppRecordConfig - 添加录制配置

AddLiveAppRecordConfigRequest

AddLiveAppRecordConfigResponse

DescribeLiveRecordConfig - 查询域名下所有App录制配置

DescribeLiveRecordConfigRequest

DescribeLiveRecordConfigResponse

AddLiveStreamTranscode - 添加转码配置信息

AddLiveStreamTranscodeRequest

AddLiveStreamTranscodeResponse

DescribeLiveStreamTranscodeInfo - 查询转码配置信息

DescribeLiveStreamTranscodeInfoRequest

DescribeLiveStreamTranscodeInfoResponse

BatchSetLiveDomainConfigs - 批量配置域名

BatchSetLiveDomainConfigsRequest

BatchSetLiveDomainConfigsResponse

DescribeLiveDomainConfigs - 查询直播域名配置

DescribeLiveDomainConfigsRequest

DescribeLiveDomainConfigsResponse

更多API可参见API概览

资源控制

在您查看API的过程中,可能已留意到API有关授权信息的说明,比如在AddLiveAppSnapshotConfig - 添加直播截图配置API中,有以下关于授权信息的内容。

image

在为RAM用户授权的过程中,您已为RAM用户授予了API的访问权限。但有些时候您可能需要更细的权限控制,比如调用同一个API,RAM用户A只能操作DomainA域名,RAM用户B只能操作DomainB域名。如果您有这样的业务需求就可以通过资源控制进行实现,实现资源控制授权可参考文档自定义授权

说明

各API支持的资源控制说明请参见API授权信息总览