本教程详细介绍如何使用Alibaba Cloud SDK for Java配置视频直播流。

前提条件

在使用本教程前,请确保已完成以下操作:
  • 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
  • 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.4.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-live -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-live</artifactId>
            <version>3.8.0</version>
        </dependency>
    </dependencies>

代码示例

本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.live.model.v20161101.AddLivePullStreamInfoConfigRequest;
import com.aliyuncs.live.model.v20161101.AddLivePullStreamInfoConfigResponse;
import com.aliyuncs.live.model.v20161101.SetLiveStreamsNotifyUrlConfigRequest;
import com.aliyuncs.live.model.v20161101.SetLiveStreamsNotifyUrlConfigResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;

/**
 * AddLivePullStreamInfoConfig            添加直播拉流信息
 * SetLiveStreamsNotifyUrlConfig    设置推流回调配置
 */
public class SetLiveStream {

    public static void main(String[] args) {

        Gson gson = new Gson();

        // 初始化公共请求参数
        IAcsClient client = initialization();

        // 添加直播拉流信息
        AddLivePullStreamInfoConfigResponse addLivePullStreamInfoConfigResponse = addLivePullStreamInfoConfig(client);
        // 处理业务逻辑
        System.out.println("---------------------添加直播拉流信息-------------------");
        System.out.println(gson.toJson(addLivePullStreamInfoConfigResponse));

        // 设置推流回调配置
        SetLiveStreamsNotifyUrlConfigResponse setLiveStreamsNotifyUrlConfigResponse = setLiveStreamsNotifyUrlConfig(client);
        // 处理业务逻辑
        System.out.println("---------------------设置推流回调配置-------------------");
        System.out.println(gson.toJson(setLiveStreamsNotifyUrlConfigResponse));

    }

    /**
     * SetLiveStreamsNotifyUrlConfig    设置推流回调配置
     */
    private static SetLiveStreamsNotifyUrlConfigResponse setLiveStreamsNotifyUrlConfig(IAcsClient client) {
        SetLiveStreamsNotifyUrlConfigRequest request = new SetLiveStreamsNotifyUrlConfigRequest();
        // 您的加速域名
        request.setDomainName("www.yourdomain.com");
        // 设置直播流信息推送到的URL地址。
        // 说明 必须以http://开头。
        request.setNotifyUrl("http://play.aliyunlive.com/notify");
        try {
            return client.getAcsResponse(request);
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
            throw new RuntimeException();
        }
    }

    /**
     * AddLivePullStreamInfoConfig    添加直播拉流信息
     */
    private static AddLivePullStreamInfoConfigResponse addLivePullStreamInfoConfig(IAcsClient client) {
        AddLivePullStreamInfoConfigRequest request = new AddLivePullStreamInfoConfigRequest();
        // 直播流所属应用名称
        request.setAppName("testApp");
        // 您的拉流域名为用户的播放域名
        request.setDomainName("live.yourdomain.com");
        // 拉流开始时间
        // UTC格式
        // StartTime和EndTime时间间隔在7天内
        request.setStartTime("2017-12-21T08:00:00Z");
        // 拉流结束时间
        request.setEndTime("2017-12-22T08:00:00Z");
        // 直播流名
        request.setStreamName("testStream");
        // 用户的直播流所在的源站
        // 多个源站可以填多个地址,用分号分隔
        request.setSourceUrl("live.yourdomain.com");
        try {
            return client.getAcsResponse(request);
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
            throw new RuntimeException();
        }
    }

    /**
     * Initialization  初始化公共请求参数
     */
    private static IAcsClient initialization() {
        // 初始化请求参数
        DefaultProfile profile = DefaultProfile.getProfile(
                "<your-region-id>", // 您的可用区ID
                "<your-access-key-id>", // 您的AccessKey ID
                "<your-access-key-secret>"); // 您的AccessKey Secret
        return new DefaultAcsClient(profile);
    }
}

执行结果

正确的执行结果类似如下:
---------------------添加直播拉流信息-------------------
{
    "RequestId":"4C747C97-7ECD-4C61-8A92-67AD806331FF"
}
---------------------设置推流回调配置-------------------
{
    "RequestId":"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8"
}