阅读本文,您可以获取 Java SDK 直播地址的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Java SDK 的安装及初始化操作。
本节为您介绍直播地址相关接口的功能和调用示例。
您可以调用 GeneratePushURL 接口生成推流地址。详细的参数说明可参见 GeneratePushURL 接口文档。
接口调用示例如下所示。
package com.volcengine.live.demo;
import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
public class GeneratePushURLDemo {
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"));
GeneratePushURLBody body = new GeneratePushURLBody();
// 域名空间,即推流域名所属的域名空间。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看推流域名所属的域名空间。
body.setVhost("push.example.com");
// 推流域名,默认为空,表示生成域名空间下所有推流域名的推流地址。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看需要的推流域名。
body.setDomain("push.example.com");
// 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
body.setApp("live");
// 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
body.setStream("example_stream");
// 推流地址的有效时长,单位为秒,超过有效时长后需要重新生成。缺省情况下表示 7 天,取值范围为正整数。
// note:
// 如果同时设置 ValidDuration 和 ExpiredTime,以 ExpiredTime 的时间为准。
body.setValidDuration(5);
// 推流地址的过期时间,RFC3339 格式的时间字符串,精度为秒,过期后需要重新生成。缺省情况下表示当前时间往后的 7 天。
// note:
// 如果同时设置 ValidDuration 和 ExpiredTime,以 ExpiredTime 的时间为准。
body.setExpiredTime("2023-08-19T16:07:25+08:00");
try {
GeneratePushURLRes resp = service.generatePushURL(body);
System.out.println(resp);
} catch (Exception e) {
e.printStackTrace();
}
}
}
您可以调用 GeneratePlayURL 接口生成拉流地址。详细的参数说明可参见 GeneratePlayURL 接口文档。
接口调用示例如下所示。
package com.volcengine.live.demo;
import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
public class GeneratePlayURLDemo {
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"));
GeneratePlayURLBody body = new GeneratePlayURLBody();
// 拉流域名。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看直播流使用的拉流域名。
body.setDomain("pull.example.com");
// 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
body.setApp("live");
// 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
body.setStream("example_stream");
// 转码流后缀,默认为空,表示生成源流的拉流地址。配置不为空时表示生成转码流的拉流地址,可通过调用 [ListVhostTransCodePreset](https://www.volcengine.com/docs/6469/1126853) 接口查询对应流的转码流后缀。
body.setSuffix("5");
// CDN 类型,默认值为 fcdn,支持如下取值。
// <li> fcdn:火山引擎流媒体直播 CDN; </li>
// <li> 3rd:第三方 CDN。 </li>
body.setType("fcdn");
// 拉流地址的有效时长,单位为秒,超过有效时长后需要重新生成。缺省情况下表示 7 天,取值范围为正整数。
// note:
// 如果同时设置 ValidDuration 和 ExpiredTime,以 ExpiredTime 的时间为准。
body.setValidDuration(3600);
// 拉流地址的过期时间,RFC3339 格式的 UTC 时间,精度为秒,过期后需要重新生成。缺省情况下表示当前时间往后的 7 天。
// note:
// 如果同时设置 ValidDuration 和 ExpiredTime,以 ExpiredTime 的时间为准。
body.setExpiredTime("2022-08-19T16:07:25+08:00");
try {
GeneratePlayURLRes resp = service.generatePlayURL(body);
System.out.println(resp);
} catch (Exception e) {
e.printStackTrace();
}
}
}