package com.netsdk.demo.customize.courseRecord;
|
|
import com.netsdk.demo.customize.courseRecord.pojo.RealPreviewChannel;
|
import com.netsdk.demo.util.CaseMenu;
|
import com.netsdk.lib.ToolKits;
|
import com.netsdk.lib.enumeration.NET_EM_LOGIC_CHANNEL;
|
import com.netsdk.lib.enumeration.NET_ENUM_INPUT_CHANNEL_MEDIA;
|
import com.netsdk.lib.structure.*;
|
|
import static com.netsdk.demo.customize.courseRecord.modules.CourseChannelModule.*;
|
|
/**
|
* @author : 47040
|
* @since : Created in 2020/9/30 10:21
|
*/
|
public class DemoConsoleDeviceStatus {
|
|
CourseRecordLogon courseRecordLogon = new CourseRecordLogon();
|
TestCourseRecordStatus courseRecordStatus = new TestCourseRecordStatus();
|
|
/**
|
* 获取软件版本
|
*/
|
public void TestQueryDevDeviceVersionState() {
|
courseRecordStatus.QueryDevDeviceVersionStateTest(courseRecordLogon.m_hLoginHandle);
|
}
|
|
/**
|
* 查询设备在线状态
|
*/
|
public void TestQueryOnlineState() {
|
courseRecordStatus.QueryOnlineStateTest(courseRecordLogon.m_hLoginHandle);
|
}
|
|
/**
|
* 查看设备存储设备状态
|
*/
|
public void TestQueryHardDiskState() {
|
courseRecordStatus.QueryHardDiskStateTest(courseRecordLogon.m_hLoginHandle);
|
}
|
|
/**
|
* 获取录播主机所有配置的前端摄像头连接状态
|
*/
|
public void TestQueryCameraState() {
|
courseRecordStatus.QueryCameraStateTest(courseRecordLogon.m_hLoginHandle, courseRecordLogon.deviceInfo.byChanNum);
|
}
|
|
/**
|
* 获取录播主机当前 逻辑-真实 通道配置
|
*/
|
public void TestGetRealPreviewChannel() {
|
RealPreviewChannel realPreviewChannel = CourseRecordChannel.GetRealPreviewChannels(courseRecordLogon.m_hLoginHandle);
|
System.out.println(realPreviewChannel.toString());
|
}
|
|
/**
|
* 获取录播主机默认 逻辑-真实 通道配置
|
*/
|
public void TestGetDefaultRealChannel() {
|
RealPreviewChannel realPreviewChannel = CourseRecordChannel.GetDefaultRealChannels(courseRecordLogon.m_hLoginHandle);
|
System.out.println(realPreviewChannel.toString());
|
}
|
|
/**
|
* 查询真实通道当前绑定在哪个逻辑通道上
|
*/
|
public void TestGetLogicChannel() {
|
/**
|
* 这里的用例是: 获取 真实通道 52 (默认映射合成通道) 的逻辑通道号
|
*/
|
NET_IN_GET_COURSE_LOGIC_CHANNEL stuLogicIn = new NET_IN_GET_COURSE_LOGIC_CHANNEL();
|
stuLogicIn.nChannelNum = 1;
|
stuLogicIn.nChannel[0] = 52; // 真实通道
|
|
NET_OUT_GET_COURSE_LOGIC_CHANNEL stuLogicOut = new NET_OUT_GET_COURSE_LOGIC_CHANNEL();
|
|
boolean ret = GetLogicChannel(courseRecordLogon.m_hLoginHandle, stuLogicIn, stuLogicOut, 3000);
|
if (!ret) {
|
System.err.println("获取逻辑通道失败! " + ToolKits.getErrorCode());
|
return;
|
}
|
|
int retNum = stuLogicOut.nChannelCount;
|
|
for (int i = 0; i < retNum; i++) {
|
System.out.println("编号(sdk) 52 通道的逻辑通道是: " + stuLogicOut.stuChannelInfo[i].emLogicChannel);
|
}
|
}
|
|
/**
|
* 绑定 逻辑-真实 通道关系
|
*/
|
public void TestSetBlindRealChannel() {
|
/**
|
* 这里用例是: 把真实通道 8 (网页上是 9) 和 “学生特写” 逻辑通道绑定
|
*/
|
NET_IN_SET_BLIND_REAL_CHANNEL stuBlindIn = new NET_IN_SET_BLIND_REAL_CHANNEL();
|
stuBlindIn.nChannelNum = 1;
|
stuBlindIn.nChannel[0] = 8; // 真实通道
|
stuBlindIn.stuChannelInfo[0].emLogicChannel = NET_EM_LOGIC_CHANNEL.NET_EM_LOGIC_CHANNEL_STUDENTFEATURE.getValue(); // 逻辑通道3
|
|
NET_OUT_SET_BLIND_REAL_CHANNEL stuBlindOut = new NET_OUT_SET_BLIND_REAL_CHANNEL();
|
|
boolean ret = SetBlindRealChannel(courseRecordLogon.m_hLoginHandle, stuBlindIn, stuBlindOut, 3000);
|
if (!ret) {
|
System.err.println("绑定 逻辑-真实 通道关系失败! ");
|
return;
|
}
|
System.out.println("绑定 逻辑-真实 通道关系成功!");
|
}
|
|
/**
|
* 获取资源通道媒体介质类型
|
*/
|
public void TestGetInputChannelMedia() {
|
/**
|
* 这里的用例是: 查看 真实通道 0 的媒体介质类型
|
* 现在的设备 0, 1 (网页上是 1, 2) 真实通道是媒体输入
|
*/
|
NET_IN_GET_INPUT_CHANNEL_MEDIA stuChannelMediaIn = new NET_IN_GET_INPUT_CHANNEL_MEDIA();
|
stuChannelMediaIn.nChannelNum = 1;
|
stuChannelMediaIn.nChannel[0] = 0; // 真实通道 0
|
NET_OUT_GET_INPUT_CHANNEL_MEDIA stuChannelMediaOut = new NET_OUT_GET_INPUT_CHANNEL_MEDIA();
|
boolean ret = GetInputChannelMedia(courseRecordLogon.m_hLoginHandle, stuChannelMediaIn, stuChannelMediaOut, 3000);
|
if (!ret) {
|
System.err.println("获取资源通道媒体介质类型失败! " + ToolKits.getErrorCode());
|
return;
|
}
|
|
int retNum = stuChannelMediaOut.nChannelNum;
|
|
for (int i = 0; i < retNum; i++) {
|
System.out.println("PPT通道的媒体介质类型是: " + NET_ENUM_INPUT_CHANNEL_MEDIA.getNoteByValue(stuChannelMediaOut.emInputMedia[i]));
|
}
|
}
|
|
|
/////////////////////////////////////// 简易控制台 ///////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
// 初始化测试
|
public void InitTest() {
|
|
CourseRecordInit.Init(); // 初始化SDK库
|
courseRecordLogon.m_strIpAddr = m_strIpAddr;
|
courseRecordLogon.m_nPort = m_nPort;
|
courseRecordLogon.m_strUser = m_strUser;
|
courseRecordLogon.m_strPassword = m_strPassword;
|
courseRecordLogon.loginWithHighLevel(); // 高安全登录
|
}
|
|
// 加载测试内容
|
public void RunTest() {
|
CaseMenu menu = new CaseMenu();
|
menu.addItem(new CaseMenu.Item(this, "获取软件版本", "TestQueryDevDeviceVersionState"));
|
menu.addItem(new CaseMenu.Item(this, "查询设备在线状态", "TestQueryOnlineState"));
|
menu.addItem(new CaseMenu.Item(this, "查看设备存储设备状态", "TestQueryHardDiskState"));
|
menu.addItem(new CaseMenu.Item(this, "获取前端摄像头连接状态", "TestQueryCameraState"));
|
|
menu.addItem(new CaseMenu.Item(this, "获取录播主机当前 逻辑-真实 通道配置", "TestGetRealPreviewChannel"));
|
menu.addItem(new CaseMenu.Item(this, "获取录播主机默认 逻辑-真实 通道配置", "TestGetDefaultRealChannel"));
|
menu.addItem(new CaseMenu.Item(this, "获取资源通道媒体介质类型", "TestGetInputChannelMedia"));
|
menu.addItem(new CaseMenu.Item(this, "获取真实通道绑定的逻辑通道", "TestGetLogicChannel"));
|
menu.addItem(new CaseMenu.Item(this, "绑定 逻辑-真实 通道关系", "TestSetBlindRealChannel"));
|
|
menu.run();
|
}
|
|
// 结束测试
|
public void EndTest() {
|
System.out.println("End Test");
|
courseRecordLogon.logOut(); // 退出
|
System.out.println("See You...");
|
CourseRecordInit.CleanAndExit(); // 清理资源并退出
|
}
|
|
|
/////////////// 配置登陆地址,端口,用户名,密码 ////////////////////////
|
private String m_strIpAddr = "172.8.1.31";
|
private int m_nPort = 37777;
|
private String m_strUser = "admin";
|
private String m_strPassword = "admin123";
|
//////////////////////////////////////////////////////////////////////
|
|
public static void main(String[] args) {
|
DemoConsoleDeviceStatus demo = new DemoConsoleDeviceStatus();
|
|
if (args.length == 4) {
|
demo.m_strIpAddr = args[0];
|
demo.m_nPort = Integer.parseInt(args[1]);
|
demo.m_strUser = args[2];
|
demo.m_strPassword = args[3];
|
}
|
|
demo.InitTest();
|
demo.RunTest();
|
demo.EndTest();
|
}
|
}
|