You need to enable JavaScript to run this app.
文档中心
文档控制台
免费开始使用
视频直播

视频直播

复制全文
下载 pdf
Java SDK
流管理
复制全文
下载 pdf
流管理

阅读本文,您可以获取 Java SDK 流管理的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer文档说明页签查看。

前提条件

调用接口前,请先完成 Java SDK 的安装及初始化操作。

调用示例

本节为您介绍流管理相关接口的功能和调用示例。

查询在线流列表

您可以调用 DescribeLiveStreamInfoByPage 接口查询在线流列表。详细的参数说明可参见 DescribeLiveStreamInfoByPage 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class DescribeLiveStreamInfoByPageDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveStreamInfoByPageQuery query =
      new DescribeLiveStreamInfoByPageQuery();

    // 查询数据的页码,取值为正整数。
    query.setPageNum(1);
    // 每页显示的数据条数,取值范围为 [1,1000]。
    query.setPageSize(10);
    // 域名空间,即直播流地址的域名所属的域名空间,默认为空,表示查询所有域名空间下的在线流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的直播流使用的域名所属的域名空间。
    query.setVhost("push.example.com");
    // 直播流使用的域名,默认为空,表示查询所有当前域名空间下的在线流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看直播流使用的域名。
    query.setDomain("push.example.com");
    // 应用名称,取值与直播流地址中 AppName 字段取值相同,默认为空,表示查询所有应用名称。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    query.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同,默认为空表示查询所有流名称。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    query.setStream("example_stream");
    // 在线流的流类型,默认为空,表示查询所有类型,支持的取值即含义如下所示。
    // <li> origin:原始流; </li>
    // <li> trans:转码流。 </li>
    query.setStreamType("origin");
    // 在线流的来源类型,默认为空,表示查询所有来源类型,支持的取值即含义如下所示。
    // <li> push:直推流; </li>
    // <li> relay:回源流。 </li>
    query.setSourceType("push");
    // 使用流名称进行查询的方式,默认值为 strict,支持的取值即含义如下所示。
    // <li> fuzzy:模糊匹配; </li>
    // <li> strict:精准匹配。 </li>
    query.setQueryType("fuzzy");

    try {
      DescribeLiveStreamInfoByPageRes resp =
        service.describeLiveStreamInfoByPage(query);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询历史流列表

您可以调用 DescribeClosedStreamInfoByPage 接口查询历史流列表。详细的参数说明可参见 DescribeClosedStreamInfoByPage 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class DescribeClosedStreamInfoByPageDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeClosedStreamInfoByPageQuery query =
      new DescribeClosedStreamInfoByPageQuery();

    // 查询数据的页码,取值范围为正整数。
    query.setPageNum(1);
    // 每页显示的数据条数,取值范围为 [1,1000]。
    query.setPageSize(10);
    // 域名空间,即直播流地址的域名所属的域名空间,默认为空,表示查询所有域名空间下的历史直播流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的历史直播流使用的域名所属的域名空间。
    query.setVhost("push.example.com");
    // 直播流使用的域名,默认为空,表示查询所有当前域名空间下的历史直播流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的历史直播流使用的域名。
    query.setDomain("push.example.com");
    // 应用名称,取值与直播流地址中 AppName 字段取值相同,默认为空,表示查询所有应用名称。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    query.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同,默认为空表示查询所有流名称。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    query.setStream("example_stream");
    // 排列方式,根据直播流结束时间排序,默认值为 desc,支持的取值及含义如下所示。
    // <li> asc:从时间最远到最近排序; </li>
    // <li> desc:从时间最近到最远排序。 </li>
    query.setSort("desc");
    // 查询的起始时间,RFC3339 格式的时间戳,精度为秒。筛选直播流结束时间符合查询条件的历史流。
    query.setEndTimeFrom("2021-10-02T19:39:26+08:00");
    // 查询的结束时间,RFC3339 格式表示的时间戳,精度为秒。筛选直播流结束时间符合查询条件的历史流。
    query.setEndTimeTo("2021-10-02T19:39:26+08:00");
    // 历史直播流的来源类型,默认为空,表示查询所有来源类型,支持的取值及含义如下所示。
    // <li> push:直推流; </li>
    // <li> relay:回源流。 </li>
    query.setSourceType("push");
    // 使用流名称进行查询的方式,默认值为 strict,支持的取值即含义如下所示。
    // <li> fuzzy:模糊匹配; </li>
    // <li> strict:精准匹配。 </li>
    query.setQueryType("fuzzy");

    try {
      DescribeClosedStreamInfoByPageRes resp =
        service.describeClosedStreamInfoByPage(query);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询禁推流列表

您可以调用 DescribeForbiddenStreamInfoByPage 接口查询禁推流列表。详细的参数说明可参见 DescribeForbiddenStreamInfoByPage 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class DescribeForbiddenStreamInfoByPageDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeForbiddenStreamInfoByPageQuery query =
      new DescribeForbiddenStreamInfoByPageQuery();

    // 查询数据的页码,取值范围为正整数。
    query.setPageNum(1);
    // 每页显示的数据条数,取值范围为 [1,1000]。
    query.setPageSize(10);
    // 域名空间,取值与禁推直播流时设置的域名空间相同,默认为空,表示查询所有域名空间下的禁推流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的禁推流使用的域名所属的域名空间。
    query.setVhost("push.example.com");
    // 直播流使用的域名,取值与禁推直播流时设置的应用名称相同,默认为空,表示查询所有当前域名空间下的禁推直播流。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的禁推直播流使用的域名。
    query.setDomain("push.example.com");
    // 应用名称,取值与禁推直播流时设置的应用名称相同,默认为空,表示查询当前域名空间下所有的禁推流。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    query.setApp("live");
    // 流名称,取值与禁推直播流时设置的流名称相同,默认为空,表示查询所有流名称。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    query.setStream("example_stream");
    // 排列方式,根据推流结束时间排序,默认值为 desc,支持的取值及含义如下所示。
    // <li> asc:从时间最远到最近排序; </li>
    // <li> desc:从时间最近到最远排序。 </li>
    query.setSort("desc");
    // 指定是否模糊匹配流名称。缺省情况为精准匹配,支持的取值及含义如下所示。
    // <li> fuzzy:模糊匹配; </li>
    // <li> strict:精准匹配。 </li>
    query.setQueryType("fuzzy");

    try {
      DescribeForbiddenStreamInfoByPageRes resp =
        service.describeForbiddenStreamInfoByPage(query);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

断开直播流

您可以调用 KillStream 接口断开直播流。详细的参数说明可参见 KillStream 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class KillStreamDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    KillStreamBody body = new KillStreamBody();

    // 域名空间,您可以调用 [DescribeLiveStreamInfoByPage](https://www.volcengine.com/docs/6469/1126841) 接口,查看待断开的在线流的信息,包括 Vhost、APP 和 Stream。
    body.setVhost("push.example.com");
    // 直播流使用的应用名称。
    body.setApp("live");
    // 直播流使用的流名称。
    body.setStream("example_stream");

    try {
      KillStreamRes resp = service.killStream(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

禁推直播流

您可以调用 ForbidStream 接口禁推直播流。详细的参数说明可参见 ForbidStream 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class ForbidStreamDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    ForbidStreamBody body = new ForbidStreamBody();

    // 域名空间,即直播流地址的域名(Domain)所属的域名空间(Vhost)。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看待禁推的直播流使用的域名所属的域名空间。
    // note:
    // 参数 Domain 和 Vhost 传且仅传一个。
    body.setVhost("push.example.com");
    // 直播流使用的域名,您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看待禁推的直播流使用的域名。
    // note:
    // 参数 Domain 和 Vhost 传且仅传一个。
    body.setDomain("push.example.com");
    // 应用名称,取值与直播流地址的 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    body.setApp("live");
    // 流名称,取值与直播流地址的 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    body.setStream("stream001");
    // 禁推的结束时间,RFC3339 格式的 UTC 时间,精度为毫秒,禁推有效期最长为 90 天,默认为当前时间加 90 天。
    body.setEndTime("2021-04-14T00:00:01.000Z");

    try {
      ForbidStreamRes resp = service.forbidStream(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

解禁直播流

您可以调用 ResumeStream 接口解禁直播流。详细的参数说明可参见 ResumeStream 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class ResumeStreamDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    ResumeStreamBody body = new ResumeStreamBody();

    // 域名空间。您可以调用 [DescribeForbiddenStreamInfoByPage](https://www.volcengine.com/docs/6469/1126843) 接口,查看禁推直播流的信息,包括 Vhost、Domain、App 和 Stream。
    // note:
    // 参数 Domain 和 Vhost 传且仅传一个。
    body.setVhost("push.example.com");
    // 直播流使用的域名。
    // note:
    // 参数 Domain 和 Vhost 传且仅传一个。
    body.setDomain("push.example.com");
    // 直播流使用的应用名称。
    body.setApp("live");
    // 直播流使用的流名称。
    body.setStream("example_stream");

    try {
      ResumeStreamRes resp = service.resumeStream(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询流状态

您可以调用 DescribeLiveStreamState 接口查询流状态。详细的参数说明可参见 DescribeLiveStreamState 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;

public class DescribeLiveStreamStateDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveStreamStateQuery query = new DescribeLiveStreamStateQuery();

    // 域名空间,即直播流地址的域名(Domain)所属的域名空间(Vhost)。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的直播流使用的域名所属的域名空间。
    // note:
    // Vhost 和 Domain 传且仅传一个。
    query.setVhost("push.example.com");
    // 填写直播流使用的域名,默认为空,表示查询所有直推流和回源流的状态和类型。 您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要查询的直播流使用的域名。
    // note:
    // Vhost 和 Domain 传且仅传一个。
    query.setDomain("push.example.com");
    // 应用名称,取值与直播流地址的 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    query.setApp("live");
    // 流名称,取值与直播流地址的 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    query.setStream("example_stream");

    try {
      DescribeLiveStreamStateRes resp = service.describeLiveStreamState(query);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

最近更新时间:2025.02.21 18:04:06
这个页面对您有帮助吗?
有用
有用
无用
无用