版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82788014
Java 实现阿里云直播推流在线列表查询
阿里云直播推流在线列表可以通过 API 的方式进行查询获取
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
官网
初始化配置
-
Constants.ALI_ACCESS_KEY_ID
是阿里云服务密钥 id ,所有服务共用 -
Constants.ALI_ACCESS_SECRET
是阿里云服务密钥,所有服务共用 - 将客户端的初始化放置在静态块中可以保证配置只初始化一次
private static IAcsClient iAcsClient;
static {
// 初始化配置
String regionId = "cn-shanghai";
DefaultProfile profile = DefaultProfile.getProfile(regionId, Constants.ALI_ACCESS_KEY_ID, Constants.ALI_ACCESS_SECRET);
iAcsClient = new DefaultAcsClient(profile);
// 本地调试
// System.setProperty("http.proxyHost", "127.0.0.1");
// System.setProperty("http.proxyPort", "8080");
}
查询推流在线列表
-
Constants.ALI_LIVE_PULL_URL
是阿里云直播的推流地址 -
Constants.ALI_LIVE_APP_NAME
是阿流云直播的应用名称- 如果不指定,则会查询出所有的应用的推流列表
- 只能是单纯的应用名称,和阿里云直播控制台设置的保持一直
- 获取到推流在线列表后,只需要进行流名称的匹配即可
public Boolean checkLiveBegin(String streamName) {
// 查询推流在线列表
DescribeLiveStreamsOnlineListRequest listRequest = new DescribeLiveStreamsOnlineListRequest();
listRequest.setDomainName(Constants.ALI_LIVE_PULL_URL);
listRequest.setAppName(Constants.ALI_LIVE_APP_NAME.replace("/", ""));
try {
DescribeLiveStreamsOnlineListResponse response = iAcsClient.getAcsResponse(listRequest);
// 获取当前推流列表
List<LiveStreamOnlineInfo> onlineInfos = response.getOnlineInfo();
for (LiveStreamOnlineInfo onlineInfo : onlineInfos) {
if (onlineInfo.getStreamName().equals(streamName)) {
return true;
}
}
} catch (ClientException e) {
logger.error("获取拉流信息失败!", e);
}
return false;
}