After-sales service
開發文檔
-
單點登錄接口
-
錄播對接規范
-
互動對接規范
-
軟件下載
-
單點登錄接口
1. 單點登錄的應用場景
1. 用戶登錄XX平臺門戶。
2. XX平臺保存用戶會話信息,在瀏覽器COOKIE中保存用戶TGC信息。
3. 用戶在XX平臺選擇應用,XX平臺將用戶重向至應用。
4. 用戶在應用內訪問受保護資源,應用將用戶重定至XX平臺。
5. XX平臺從瀏覽器中獲取用戶TGC信息,并根據TGC校驗用戶會話。
6. XX平臺生成ST,并攜帶ST將用戶從XX平臺重定向至應用。
7. 應用使用ST請求平臺校驗。
8. 平臺向應用返回校驗結果及用戶信息。
1.1. 單點登錄配置
說明:以下給出的配置是通用的客戶端配置Demo,只適合跳轉地址固定的場景。如有其他特殊需求,需客戶端程序自己實現。
Java語言客戶端配置(示例-ssotest 項目)
1.1.1. ssotest 項目說明
ssotest 項目是由maven管理的javaweb項目,項目所依賴的jar文件包都在項目根目錄下的pom.xml 文件內定義,文件內除com.sanbu.shiro jar包外均為maven倉庫的官方jar包。
1.1.2. 在項目web.xml文件添加以下內容
登出配置
shiroFilter過濾器
本過濾器用于過濾項目中需要使用單點登錄的服務信息。
1.1.3. Spring配置詳見
1.1.4. 配置cas.properties
參數說明
序號
參數名稱
說明
1
cas.server.url.prefix
單點登錄認證服務地址
2
Cas.service
客戶端認證服務地址
3
login.url
登陸攔截認證跳轉地址
1.1.5. 取得用戶的信息
用戶登錄后,可以通過接口取得用戶信息,這些信息包含在java.util. map對象中。
例如:
取得登錄用戶的信息
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.PrincipalCollection;
public class LoginUserUtil {
public static Map getLoginUser(){
Map<?, ?> userMap = null;
Subject subject = SecurityUtils.getSubject();
PrincipalCollection principals = subject.getPrincipals();
if(principals!=null&&!principals.isEmpty()){
List<?> list=principals.asList();
if(!list.isEmpty()){
userMap = (Map<?, ?>) list.get(1);
}
}
return userMap;
}
... ...
}
數據說明:
序號
字段名(Map的Key)
類型
說明
1
id
string
用戶識別ID
2
username
string
用戶名
3
usertype
string
用戶類型
4
schoolid
string
用戶學校識別ID
5
platmark
string
用戶平臺識別ID
6
schoolgroupid
string
用戶學校組識別id
2. 接口參考
2.1. 單點登錄
2.1.1. 單點登錄接口
單點登錄接口用于顯示登錄界面,登錄成功后,單點登錄平臺生成票據信息ticket,單點登錄客戶應用攜帶票據信息ticket,并重定向到service參數所指定的地址 。
參數說明
序號
參數名稱
是否必須
類型
描述
1
service
必選
string
登錄成功后重定向的應用的目標地址即應用的入口地址。
例如:http://ip:port/ssotest/
返回說明
登錄成功后獲取票據信息ticket數據并緩存,然后重定向到目標地址。
2.1.2. Ticket驗證接口
驗證Ticket,驗證成功后并返回當前登錄用戶信息。
接口說明
url
http://10.1.53.100/middlecas/serviceValidate
協議
http
請求方式
post
格式
xml
接口方向
應用à平臺
參數說明
序號
參數名稱
是否必須
類型
描述
1
ticket
必選
string
單點登錄成功后生成的票據信息
2
serivce
必選
string
http://ip:port/ssotest/
例:
http://10.1.53.100/middlecas/serviceValidate?ticket=SO6YEWI93093UTYDVXBZ4513&service=http://ip:port/ssotest/
返回說明
序號
字段名
約束
類型
說明
1
cas:serviceResponse
必選
1.1
cas:authenticationSuccess
必選
1.1.1
cas:user
必選
String
用戶標識ID
1.1.2
cas:attributes
必選
1.1.2.1
cas:truename
必選
String
用戶真實名稱
1.1.2.2
cas:mobile
可選
String
手機號
1.1.2.3
cas:usertype
必選
String
用戶類型
1.1.2.4
cas:schoolgroupid
必選
String
用戶學校分組標識ID
1.1.2.5
cas:password
可選
String
用戶密碼
1.1.2.6
cas:schoolid
必選
String
歸屬機構\學校ID
1.1.2.7
cas:name
必選
String
用戶名
1.1.2.8
cas:groupleader
可選
String
是否是組長
1.1.2.9
cas:registertype
可選
String
用戶注冊方式
1.1.2.10
cas:id
必選
String
用戶標識ID,與1.1.1一致
1.1.2.11
cas:usercode
可選
String
用戶編碼
1.1.2.12
cas:platmark
必選
String
用戶平臺ID
1.1.2.13
cas:email
可選
String
用戶郵件地址
示例:驗證通過報文
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationSuccess>
<!—用戶ID -->
<cas:user>6769bc63-636e-423b-9d19-e6b8a9f13227</cas:user>
<!—附加信息 -->
<cas:attributes>
<!—用戶真實名稱 -->
<cas:truename>XXXX</cas:truename>
<!—手機號 -->
<cas:mobile/>
<!—用戶類型 -->
<cas:usertype>e9f46d6c-c44d-463b-a6ff-80b74cd3edee</cas:usertype>
<!用戶學校分組標識ID -->
<cas:schoolgroupid/>
<cas:password/>
<!—歸屬機構\學校ID -->
<cas:schoolid>a57f69f6-89ff-4a1d-aa69-799d5db1b15d</cas:schoolid>
<!—用戶名 -->
<cas:name>jssadmin</cas:name>
<!—是否是組長 -->
<cas:groupleader>0</cas:groupleader>
<!—用戶注冊方式 -->
<cas:registertype>0</cas:registertype>
<!—用戶ID -->
<cas:id>6769bc63-636e-423b-9d19-e6b8a9f13227</cas:id>
<cas:usercode/>
<!—用戶平臺ID -->
<cas:platmark>e7fcf0e4-6fd7-49a0-9343-847d86be2822</cas:platmark>
<!—用戶郵箱 -->
<cas:email/>
<cas:username>6769bc63-636e-423b-9d19-e6b8a9f13227</cas:username>
</cas:attributes>
<!—附加結束 -->
</cas:authenticationSuccess>
</cas:serviceResponse>
驗證不通過的報文:
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationFailure code="INVALID_REQUEST">必須同時提供'service'和'ticket'參數</cas:authenticationFailure>
</cas:serviceResponse>
客戶端解釋XML報文對驗證通過的報文中取得<cas:id>節點的值,得到當前登錄的用戶標識ID。
客戶端收到校驗通過后的報文,取得用戶標識ID,根據ID建立本地的用戶會話。會話時間默認的保持時間為30分鐘;或根據需要具體配置,客戶端再根據ID調用平臺接口取得當前用戶的用戶信息。
2.2. OAuth接口
XX用戶平臺集成了OAuth接口,用于提供給非WEB應用系統。非WEB應用系統可以使用OAuth接口,訪問平臺的資源數據。
2.2.1. OAuth接口的使用
平臺中封裝了OAuth接口的調用。要使用OAuth接口,必須使用平臺提供的jar包:
middleware.core-1.0.3.A.8-pg.jar.zip
系統封裝了com.3bu.middle.util.OAuthClient對象,用于訪問OAuth接口。
2.2.2. OAuthClient對象說明
構造函數
序號
參數名稱
數據類型
說明
1
serverUrl
String
平臺服務應用的URL
2
authorizeUrl
String
認證地址,一般是/oauth2/authorize
3
redirectUrl
String
重定向地址,使用null的缺省值: /oauth2/access_token
登錄
l 方法名: login
l 參數說明:
序號
參數名稱
數據類型
說明
1
platformId
String
平臺ID
2
username
String
用戶名
3
password
String
密碼
4
clientId
String
客戶ID, 通常使用常量
"6b4cfaea-7016-11e5-bd19-68f728833c05"
l 返回說明:json類型:
序號
參數名稱
數據類型
說明
1
access_token
String
令牌
l 異常:
HttpException, IOException, JSONException, Exception
調用POST接口
l 方法名: callPost
l 參數說明:
序號
參數名稱
數據類型
說明
1
postUrl
String
API地址
2
params
Map<String, String>
參數
3
contentType
String
數據類型
l 返回類型:
Object類型,JSONObject/JSONArray,視具體接口而定
l 異常:
IOException
調用GET接口
l 方法名: callGet
l 參數說明:
序號
參數名稱
數據類型
說明
1
getUrl
API地址
2
params
Map<String, String>
參數
3
contentType
String
數據類型
l 返回類型:
Object類型,JSONObject/JSONArray,視具體接口而定
l 異常:
IOException
調用GET接口(重載方法)
l 方法名: callGet
l 參數說明:
序號
參數名稱
數據類型
說明
1
getUrl
API地址
2
params
Map<String, String>
參數
3
header
Map<String, String>
HTTP定制HEAD
l 返回類型:
Object類型,JSONObject/JSONArray,視具體接口而定
l 異常:
IOException
2.3. 調用示例
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.MediaType;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.3bu.middle.util.OAuthClient
/**
* OAuth訪問示例類
*/
public class TestCenterOAuthCaller {
//平臺服務應用的URL
final static String ServiceApp =
"https://dev.3bu.com:8443/middlecenter";
final static String AuthorizeUrl="/oauth2/authorize";
public static void main(String[] args) throws Exception {
OAuthClient client=new OAuthClient(ServiceApp, AuthorizeUrl, null);
//平臺租戶ID
String platformId = "29a5350d-aee2-4c30-894e-47124f4c6084";
String username = "xxxx"; //用戶名
String password = "yyyyyy"; //密碼
String clientID = "6b4cfaea-7016-11e5-bd19-68f728833c05" ; //常量
JSONObject json = client.login(
platformId, username, password, clientID);
//API路徑
final String apiUrl ="/service/api/v1/auth/area/areaTree/";
Map<String,String> para = new HashMap<>();
para.put("nodeid", "1");
JSONArray data=(JSONArray)client.callPost(
apiUrl, para, MediaType.APPLICATION_FORM_URLENCODED);
System.out.println(data);
}
}
-
錄播對接規范
此文檔僅用于實現用戶的應用場景使用,其它任何人都不能用于其它用途。
1. 前言
1.1. 背景
此文檔僅用于實現用戶的應用場景使用,其它任何人都不能用于其它用途。
三步TSCloud平臺控制第三方錄播流程圖:
1.1. 基礎信息
品牌
產品負責人:
研發負責人:
產品型號:
軟件版本:
其它:
備注:
1. 為方便對接以上信息要求真實可靠;
2. 如果用戶現場環境中軟件版本與填表不一至,必須同步提交該軟件版本;
2. 連接通訊
2.1. 基本通訊
需要提供:品牌及型號識別、傳輸協議、數據傳輸格式、驗證方式、通訊端口等信息,
功能說明
條件
發送
返回
其它
例如:
tcp客戶端
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* TCP鏈接
*/
public class TCPClient {
/* 日志 */
private Logger logger = LoggerFactory.getLogger(TCPClient.class);
/* socket實例 */
private Socket s;
private DataOutputStream out
private DataInputStream in;
/**
* 連接設備
* @param ddr 地址
* @param port 端口
*/
public void connect(String ddr, int port) {
try {
s = new Socket(ddr, port);
if (s.isConnected()) {
logger.info("連接錄播 :" + ddr + " 端口:" + port + "成功");
}
} catch (UnknownHostException e) {
logger.error("錯誤的地址" + e.getMessage(), e);
} catch (IOException e) {
logger.error("建立連接失敗" + e.getMessage(), e);
}
}
/**
* 發送消息
* @param msg 指令
*/
public void sendMag(String msg) {
try {
out = new DataOutputStream(s.getOutputStream());
byte[] bt = msg.getBytes();
out.write(bt);
} catch (IOException e) {
logger.error("發送消息失敗" + e.getMessage(), e);
}
}
/**
* 返回信息
*/
public String response() {
StringBuffer result = new StringBuffer();
try {
in = new DataInputStream(s.getInputStream());
byte[] buf = new byte[2048];
int readLen = 0;
while ((readLen = in.read(buf)) != -1) {
String s1 = new String(buf,0,readLen,"UTF-8");
result.append(s1);
}
out.close();
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
String rest = result.toString().trim();
return rest;
}
}
/**
* mc1000客戶端
*/
public class MC1000 {
private Logger logger = LoggerFactory.getLogger(MC1000.class);
public TCPClient TCPClient;
public MC1000(){
TCPClient = new TCPClient();
TCPClient.connect("10.1.0.81", 11092);
TCPClient.sendMag("<CMD id=\"login_req\"><userid>admin</userid><passwd>admin</passwd><need_db></need_db></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 打開錄制
* @param rec_mode 錄制模式(0:電影模式,1:資源模式,2:電影+資源)
*/
public void startRecord(String rec_mode) {
TCPClient.sendMag("<CMD id=\"start_rec\"><rec_mode>" + rec_mode + "</rec_mode></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 關閉錄制
*/
public void stopRecord() {
TCPClient.sendMag("<CMD id=\"stop_rec\"></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 設置錄制模式
* @param recMode 錄制模式(0:電影模式,1:資源模式,2:電影+資源)
*/
public void setRecMode(String rec_mode) {
TCPClient.sendMag("<CMD id=\"set_rec_mode\"><rec_mode>" + rec_mode + "</rec_mode></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 設置自動跟蹤
* @param trackMode 跟蹤(0:自動跟蹤 1:手動跟蹤)
*/
public void setTrackMode(String trackMode) {
TCPClient.sendMag("<CMD id=\"set_track_mode\"><track_mode>" + trackMode + "</track_mode>");
logger.info("設備返回信息" + TCPClient.response());
}
}
2.2. 網絡連接
用來連接設備,連接時會傳用戶名和密碼給設備。連接上設備才可以操作設備,需要提供如何通過網絡指令登錄錄播設備、如何心跳、如何進行驗證方法等。
功能說明
條件
發送
返回
其它
備注:
1. 如果錄播沒有心跳功能,建議指定個查詢狀態用于心跳連接;
2. 建議此用戶名或密碼具有一定的權限,用戶無法更改密碼;
一段代碼分別標注包含以上信息。
public MC1000(){
TCPClient = new TCPClient(); //初試化客戶端時new一個TCP連接對象
TCPClient.connect("10.1.0.81", 11092);//連接上ip為10.1.0.81的設備
TCPClient.sendMag("<CMD id=\"login_req\"><userid>admin</userid><passwd>admin</passwd><need_db></need_db></CMD>");//發送驗證信息給設備(包括用戶名,密碼)
logger.info("設備返回信息" + TCPClient.response());//驗證成功,設備返回信息(需要處理的信息)
}
備注:登錄成功后,設備會返回所有設備相關信息。
3. 管理功能
3.1. 在線狀態
提供如何獲取錄播的在線狀態、錄制狀態、直播狀態、文件上傳狀態、硬盤剩余空間等狀態,
功能說明
發送
返回
其它
例如:
/**
* 心跳
*/
public void heartBeaten() {
TCPClient.sendMag("<CMD id=\"heart_beaten\"></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:mc1000支持心跳,心跳指令heart_beaten,會返回設備狀態(比如:在線狀態、錄制狀態、直播狀態、畫面狀態等)
3.2. 開關機
通過網絡指令實現對錄播設備開機或關機,如果不能返回狀態需要說明是否可以重復發送。
功能說明
發送
返回
其它
一段代碼分別標注包含以上信息。
例如:
/**
* 關機/重啟
* @param poweroff 0:關機 1:重啟
*/
public void reboot(String poweroff) {
TCPClient.sendMag("<CMD id=\"reboot\"><poweroff>" + poweroff + "</poweroff>");//發送指令給設備,參數poweroff(0:關機 1:重啟)
logger.info("設備返回信息" + TCPClient.response());//設備返回信息(需要處理)
}
3.3. 查詢錄播詳情
可以查詢錄制、直播、接口等參數的詳情。
功能說明
條件
發送
返回
其它
備注:mc1000會主動推送設備詳情
4. 基本錄直播功能
4.1. 錄制功能
包括錄制的開始、暫停、結束,如果錄制開始需要傳參數,請詳細說明傳哪些參數。
功能說明
條件
發送
返回
其它
/**
* 打開錄制
* @param rec_mode 錄制模式(0:電影模式,1:資源模式,2:電影+資源)
*/
public void startRecord(String rec_mode) {
TCPClient.sendMag("<CMD id=\"start_rec\"><rec_mode>" + rec_mode + "</rec_mode></CMD>");//打開錄制需要傳入錄制模式
logger.info("設備返回信息" + TCPClient.response());//這里會返回設備當前錄制信息(比如:錄制狀態,錄制時間,錄制開始時間,錄制模式...)
}
備注:mc1000打開錄制,需要傳入參數錄制模式(0:電影模式,1:資源模式,2:電影+資源)。
/**
* 關閉錄制
*/
public void stopRecord() {
TCPClient.sendMag("<CMD id=\"stop_rec\"></CMD>");//發送關閉錄制指令即可
logger.info("設備返回信息" + TCPClient.response());//返回錄制信息
}
4.2. 錄制模式
包括電影、資源、電影+資源模式,需要說明更改的條件,例如錄制開始時不允許更改、或部分場景下不允許更改等。
功能說明
條件
發送
返回
其它
/**
* 設置錄制模式
* @param recMode 錄制模式(0:電影模式,1:資源模式,2:電影+資源)
*/
public void setRecMode(String rec_mode) {
TCPClient.sendMag("<CMD id=\"set_rec_mode\"><rec_mode>" + rec_mode + "</rec_mode></CMD>");//設置錄制模式(參數:0:電影模式,1:資源模式,2:電影+資源)
logger.info("設備返回信息" + TCPClient.response());//返回錄制模式
}
4.3. 畫面分屏
可以設置的畫面分屏模式,例如單屏、畫中畫等。
功能說明
條件
發送
返回
其它
/**
* 設置畫面分屏
* @param policy_id 分屏策略(0:互動單屏、1:互動(無VGA)、2:互動(無學生)、3:互動四分屏、4:精品課堂-三分屏、5:學生+VGA、6:精品課堂單屏、7:老師+VGA(畫中畫)、8:老師+VGA(左右)、9:老師+學生(畫中畫)、10:老師+學生(左右)、11:聽課課堂)
* pip_pos 畫中畫小畫面位置(lu:左上、ld:左下、ru:右上、rd:右下)
*/
public void splitScreen(String policy_id,String pip_pos) {
TCPClient.sendMag("<CMD id=\"set_pic_policy\"><pic_id>0</pic_id><policy_id>" + policy_id + "</policy_id><pip_pos>" + pip_pos + "</pip_pos><save_it>1</save_it><use_it>1</use_it></CMD>");
//policy_id 分屏策略(0:互動單屏、1:互動(無VGA)、2:互動(無學生)、3:互動四分屏、4:精品課堂-三分屏、5:學生+VGA、6:精品課堂單屏、7:老師+VGA(畫中畫)、8:老師+VGA(左右)、9:老師+學生(畫中畫)、10:老師+學生(左右)、11:聽課課堂) pip_pos 畫中畫小畫面位置(lu:左上、ld:左下、ru:右上、rd:右下)
logger.info("設備返回信息" + TCPClient.response());//返回畫面狀態
}
備注:mc1000分屏主要兩個重要參數policy_id(分屏策略)、pip_pos(畫中畫小畫面位置),其他的參數設置默認參數即可。
4.4. 畫面切換
可以切換老師、學生、課件等某個畫面到主畫面或預覽畫面。
功能說明
條件
發送
返回
其它
/**
* 設置主畫面
* @param major 主畫面(tq:老師全景、tt:老師特寫、bk:板書、sq:學生全景、st:學生特寫、vga:vga、 hd:互動遠端、-1:自動)
*/
public void setMajor(String major) {
TCPClient.sendMag("<CMD id=\"set_major\"><major>" + major + "</major></CMD>");//設置主畫面(參數:tq:老師全景、tt:老師特寫、bk:板書、sq:學生全景、st:學生特寫、vga:vga、 hd:互動遠端、-1:自動)
logger.info("設備返回信息" + TCPClient.response());//返回畫面狀態
}
備注:mc1000主畫面支持老師全景(tq)、老師特寫(tt)、板書(bk)、學生全景(sq)、學生特寫(st)、vga(vga)、互動遠端(hd)、自動(-1)。
4.5. 直播功能
控制錄播直播的配置,例如可配置直播開關、推流地址、協議、分辨率等。
功能說明
條件
發送
返回
其它
備注:
1. 如果錄播提供多種直播類型,需要標注出RTMP協議的設置及配置方法;
2. 錄播支持多路不同碼流的直播時需要標注支持哪些類型;
3. 直播是否有前置條件必須要明確說明;
/**
* 設置直播參數
* @param params 直播相關參數(bwud:超清直播碼率 、 bwhd:高清直播碼率 、bwsd:標清直播碼率 、resud:超清直播分辨率 、reshd:高清直播分辨率 、ressd:標清直播分辨率 、urlud:超清直播地址、urlhd"高清直播地址、urlsd:標清直播地址)
*/
public void setBroadParam(Map<String,Object> params) {
TCPClient.sendMag("<CMD id=\"set_broad\"><res_ud>" + params.get("res_ud") + "</res_ud><res_hd>" + params.get("res_hd") + "</res_hd><res_sd>" + params.get("res_sd") + "</res_sd><bw_ud>" + params.get("bw_ud") + "</bw_ud><bw_hd>" + params.get("bw_hd") + "</bw_hd><bw_sd>" + params.get("bw_sd") + "</bw_sd><url_ud>" + params.get("url_ud") + "</url_ud><url_hd>" + params.get("url_hd") + "</url_hd><url_sd>" + params.get("url_sd") + "</url_sd></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:mc1000支持推3路直播流,所以可設置三路直播參數。
/**
* 打開直播
* @param isOuter 直播類型(0:本地直播 、 1:平臺直播)
*/
public void setLiveOn(String isOuter) {
TCPClient.sendMag("<CMD id=\"start_live\"><isOuter>" +isOuter + "</isOuter></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 關閉直播
* @param isOuter 直播類型(0:本地直播 、 1:平臺直播)
*/
public void setLiveOn(String isOuter) {
TCPClient.sendMag("<CMD id=\"stop_live\"><isOuter>" +isOuter + "</isOuter></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:mc1000可以支持平臺直播和本地直播,對應我們平臺的需求,所以都會控制。
5. 跟蹤相關功能
5.1. 跟蹤開關
通過錄播控制跟蹤的指令,必須包含控制老師、學生、板書跟蹤的開啟與關閉,同時提供同步狀態方法。
功能說明
條件
發送
返回
其它
備注:mc1000支持設置老師學生分開控制,也支持同步控制。
1. 建議如果支持老師、學生分開控制提供分開控制方法;
/**
* 設置學生跟蹤
* @param st_manual 學生跟蹤(0:自動跟蹤開、1:自動跟蹤關)
*/
public void setStudentTrackMode(String st_manual) {
TCPClient.sendMag("<CMD id=\"set_track_mode\"><st_manual>" + st_manual + "</st_manual></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
/**
* 設置老師跟蹤
* @param tt_manual 老師跟蹤(0:自動跟蹤開、1:自動跟蹤關)
*/
public void seTeacherTrackMode(String tt_manual) {
TCPClient.sendMag("<CMD id=\"set_track_mode\"><tt_manual>" + tt_manual + "</tt_manual></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:學生跟蹤和老師跟蹤的參數都是(0:自動跟蹤開、1:自動跟蹤關)
2. 需要同步說明跟蹤關后是否還會畫面切換 。
/**
* 設置跟蹤
* @param trackMode 跟蹤(0:自動跟蹤開、1:自動跟蹤關)
*/
public void seTeacherTrackMode(String trackMode) {
TCPClient.sendMag"<CMD id=\"set_track_mode\"><track_mode>" + trackMode + "</track_mode></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:這個是mc1000總體設置跟蹤,參數trackMode(0:自動跟蹤開、1:自動跟蹤關)
5.2. 跟蹤狀態
通過錄播獲取老師、學生、板書、課件的狀態,即需要通過接口能夠自動獲取到目標的狀態,建議是發生動作后自己上報狀態。
功能說明
條件
發送
返回
其它
備注:mc1000會推送設備狀態
5.3. 攝像機控制
通過錄播控制老師、學生、板書三個攝像機的云臺控制、變焦、預置位等控制操作。
功能說明
條件
發送
返回
其它
/**
* 攝像機控制
* @param params 攝像機控制相關參數
* cameraIndex:相機編號或者鏡頭選擇
* camAction:攝像機具體控制(left / right / up / down /zoom_in(特寫) / zoom_out(全景))
* turnDuration:攝像機運動時長
*/
public void CameraControl(Map<String,Object> params) {
TCPClient.sendMag("<CMD id=\"move_pan\"><ptzcam_idx>" + params.get("cameraIndex") + "</ptzcam_idx><action>" + params.get("camAction") + "</action><speed>30</speed></CMD>");
//mc1000操控攝像機后,攝像機執行持續時間turnDuration
try {
Thread.sleep(Integer.parseInt((String)params.get("turnDuration")));
} catch (InterruptedException e) {
}
//mc1000操控攝像機后,會一直執行下去,所以需要下面的代碼來終止操作
TCPClient.sendMag("<CMD id=\"move_pan\"><ptzcam_idx>" + params.get("cameraIndex") + "</ptzcam_idx><action>stop</action><speed>30</speed></CMD>");
}
/**
* 預制位設置
*
* @param params 設置預制位相關信息
* operatePos:具體操作預制位參數 recall_preset(調用預制位)、clear_preset(刪除預制位)、set_preset(保存預制位)
* cameraIndex:相機編號或者鏡頭選擇
* pos:預制位信息
*/
public void setPreset(Map<String, Object> params) {
TCPClient.sendMag("<CMD id=\""+ params.get("operatePos") +"\"><ptzcam_idx>" + params.get("cameraIndex") + "</ptzcam_idx><pos>" + params.get("pos") + "</pos></CMD>");
}
6. 文件管理功能
6.1. 文件管理
提供錄播獲取錄制文件列表的查詢、修改、刪除操作。
功能說明
條件
發送
返回
其它
備注:
1. 獲取文件列表時建議提供詳細的文件名稱、講課老師、錄制時間、科目等詳細的信息;
6.2. 文件上傳或獲取
提供錄播錄像文件上傳的方法,如果沒有上傳功能,需要提供獲取錄播錄像文件的方法,通過平臺先獲取再上傳。
功能說明
條件
發送
返回
其它
備注:
1. 如果錄播支持自動上傳(如FTP)功能,需要提供自動上傳的方法及配置方案。
2. 自動上傳的任務狀態需要給出相應的解決方案。
/**
* 設置ftp文件上傳
* @param ftp_ip 文件服務器地址
* user_id 文件服務器用戶名
* passwd 文件服務器密碼
* auto_upload 是否自動上傳(0:不自動上傳、1:自動上傳)
*/
public void setFTP(String ftp_ip,String user_id,String passwd,String auto_upload) {
TCPClient.sendMag("<CMD id=\"set_ftp_svr\"><ftp_ip>" +ftp_ip + "</ftp_ip><user_id>" +user_id + "</user_id><passwd>" +passwd + "</passwd><auto_upload>" +auto_upload + "</auto_upload></CMD>");
logger.info("設備返回信息" + TCPClient.response());
}
備注:設置自動上傳后,文件錄制完成后會自動上傳都我們的文件服務器。
7. 其它特有功能
其它錄播廠商認為自己的特色功能,或用戶強烈要求的功能,可在此進行詳細的功能說明及控制接口說明。
-
互動對接規范
三步TSCloud平臺控制第三方MCU流程圖:
1. 連接通訊
1.1. 基本通訊
需要提供:品牌及型號識別、傳輸協議、數據傳輸格式、驗證方式、通訊端口等信息,
功能說明
條件
發送
返回
其它
示例代碼:
<?xml version="1.0" encoding="UTF-8"?>
<TRANS_MCU>
<ACTION>
<LOGIN>
<MCU_IP>
<IP>127.0.0.1</IP> //MCUIP
<LISTEN_PORT>80</LISTEN_PORT> //MCU端口
<HOST_NAME />
</MCU_IP>
<USER_NAME>UNAME</USER_NAME> //登錄名
<PASSWORD>PWORD</PASSWORD> //登錄密碼
<COMPRESSION>true</COMPRESSION>
</LOGIN>
</ACTION>
</TRANS_MCU>
發送XML給MCU。
2. 管理功能
2.1. 設備狀態
提供如何獲取MCU的在線狀態、序列號、軟件版本、總資源數、剩余資源數等狀態,
功能說明
發送
返回
其它
示例代碼:
<TRANS_RSRC_REPORT>
<ACTION>
<GET_CARMEL_REPORT/> //獲取資源數
</ACTION>
</TRANS_RSRC_REPORT>
<TRANS_MCU>
<ACTION>
<GET_CFS /> //獲取序列號
</ACTION>
</TRANS_MCU>
發送XML給MCU。
2.2. 模版狀態
包括模版列表的獲取、模版的新增、模版的刪除等
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_RES_LIST>
<ACTION>
<GET_PROFILE_LIST> //獲取模版列表
<OBJ_TOKEN>-1</OBJ_TOKEN>
</GET_PROFILE_LIST>
</ACTION>
</TRANS_RES_LIST>
發送XML給MCU。
2.2.1. 創建模版
創建一個新的模版。
功能說明
條件
發送
返回
示例代碼:
<TRANS_RES_1>
<ACTION>
<START>
<RESERVATION>
<OBJ_TOKEN>-1</OBJ_TOKEN>
<CHANGED>true</CHANGED>
<NAME>dairb_routing</NAME>
<ID>-1</ID>
<REMARK />
<NETWORK>h320_h323</NETWORK>
<MEDIA>video_audio</MEDIA>
<PASSWORD />
<VIDEO_SESSION>continuous_presence</VIDEO_SESSION>
<VIDEO_PROTOCOL>auto</VIDEO_PROTOCOL>
<TRANSFER_RATE>1920</TRANSFER_RATE>
<AUDIO_RATE>auto</AUDIO_RATE>
<VIDEO_FORMAT>auto</VIDEO_FORMAT>
<FRAME_RATE>auto</FRAME_RATE>
<ATTENDED_MODE>ivr</ATTENDED_MODE>
<AV_MSG>Conference IVR Service</AV_MSG>
<RESTRICT_MODE>derestricted</RESTRICT_MODE>
<T120_RATE>none</T120_RATE>
<ENTRY_TONE>false</ENTRY_TONE>
<EXIT_TONE>false</EXIT_TONE>
<END_TIME_ALERT_TONE>5</END_TIME_ALERT_TONE>
<STAND_BY>false</STAND_BY>
<PEOPLE_AND_CONTENT>false</PEOPLE_AND_CONTENT>
<ANNEX_N>false</ANNEX_N>
<ANNEX_P>false</ANNEX_P>
<ANNEX_F>false</ANNEX_F>
<OPERATOR_CONF>false</OPERATOR_CONF>
<SAME_LAYOUT>false</SAME_LAYOUT>
<DUO_VIDEO>false</DUO_VIDEO>
</RESERVATION>
</START>
</ACTION>
</TRANS_RES_1>
發送XML給MCU。
2.2.2. 刪除模版
刪除一個模版。
功能說明
條件
發送
返回
示例代碼:
<TRANS_RES_2>
<ACTION>
<TERMINATE_PROFILE>
<ID>0</ID> //會議ID
</TERMINATE_PROFILE>
</ACTION>
</TRANS_RES_2>
發送XML給MCU。
3. 會議功能
3.1. 創建會議
需要說明創建會議的流程,包含創建會議是否設定參數信息、調取MCU存儲的參數等詳細過程及接口。
功能說明
條件
發送
返回
示例代碼:
<TRANS_RES_1>
<ACTION>
<START>
<RESERVATION>
<OBJ_TOKEN+>-1</OBJ_TOKEN>
<CHANGED>true</CHANGED>
<NAME />
<ID>-1</ID>
<REMARK />
<NETWORK>h320_h323</NETWORK>
<MEDIA>video_audio</MEDIA>
<PASSWORD />
<VIDEO_SESSION>continuous_presence</VIDEO_SESSION>
<VIDEO_PROTOCOL>auto</VIDEO_PROTOCOL>
<TRANSFER_RATE>384</TRANSFER_RATE>
<AUDIO_RATE>auto</AUDIO_RATE>
<VIDEO_FORMAT>auto</VIDEO_FORMAT>
<FRAME_RATE>auto</FRAME_RATE>
<ATTENDED_MODE>ivr</ATTENDED_MODE>
<AV_MSG />
<RESTRICT_MODE>derestricted</RESTRICT_MODE>
<T120_RATE>none</T120_RATE>
<ENTRY_TONE>false</ENTRY_TONE>
<EXIT_TONE>false</EXIT_TONE>
<END_TIME_ALERT_TONE>5</END_TIME_ALERT_TONE>
<STAND_BY>false</STAND_BY>
<PEOPLE_AND_CONTENT>false</PEOPLE_AND_CONTENT>
<ANNEX_N>false</ANNEX_N>
<ANNEX_P>false</ANNEX_P>
<ANNEX_F>false</ANNEX_F>
<OPERATOR_CONF>false</OPERATOR_CONF>
<SAME_LAYOUT>false</SAME_LAYOUT>
<DUO_VIDEO>false</DUO_VIDEO>
</RESERVATION>
</START>
</ACTION>
</TRANS_RES_1>
發送XML給MCU。
3.1.1. 可召開的會議模式
設置會議模式。比如:
1. 可設置所有終端看相同畫面,
2. 所有終端看除自己之外的其他終端畫面,
3. 指定某個終端看其他終端畫面,其他終端均看該的終端畫面,
功能說明
條件
發送
返回
3.1.2. 創建級聯會議
需要說明會議級聯的方案,建議是級聯的邏輯有TSCloud平臺實現,只需要提供創建級聯會議的方法及接口文檔即可。
備注:
1. 如果MCU自帶級聯方案,只需要提供接口即可;
2. 級聯點需要特別說明;
3.2. 會議管理
3.2.1. 會議信息
獲取指定MCU上的會議列表。
功能說明
條件
發送
返回
示例代碼:
<TRANS_CONF_LIST>
<ACTION>
<GET_LS>
<OBJ_TOKEN>-1</OBJ_TOKEN> //獲取會議列表
</GET_LS>
</ACTION>
</TRANS_CONF_LIST>
發送XML給MCU。
3.2.2. 刪除會議
刪除指定MCU上的某個會議
功能說明
條件
發送
返回
示例代碼:
<TRANS_CONF_2>
<ACTION>
<TERMINATE_CONF>
<ID>0</ID> //要刪除的會議的ID
</TERMINATE_CONF>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3. 會議控制
3.3.1. 獲取終端信息
獲取指定會議終端某個終端的詳細信息
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_PARTY>
<ACTION>
<GET>
<CONF_ID>1</CONF_ID> //會議ID
<PARTY_ID>1</PARTY_ID> //終端ID
</GET>
</ACTION>
</TRANS_PARTY>
發送XML給MCU。
3.3.2. 添加終端
通過IP地址、H323短號、SIP短號呼叫各類視頻會議終端
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_1>
<ACTION>
<ADD_PARTY>
<ID>157</ID>
<PARTY>
<NAME>1955558</NAME>
<ID>0</ID>
<INTERFACE>h323</INTERFACE>
<CONNECTION>dial_out</CONNECTION>
<MEET_ME_METHOD>party</MEET_ME_METHOD>
<NUM_TYPE>taken_from_service</NUM_TYPE>
<BONDING>auto</BONDING>
<MULTI_RATE>auto</MULTI_RATE>
<NET_CHANNEL_NUMBER>auto</NET_CHANNEL_NUMBER>
<VIDEO_PROTOCOL>auto</VIDEO_PROTOCOL>
<CALL_CONTENT>framed</CALL_CONTENT>
<ALIAS>
<NAME />
<ALIAS_TYPE>323_id</ALIAS_TYPE>
</ALIAS>
<IP>192.167.2.42</IP>
<SIGNALING_PORT>1720</SIGNALING_PORT>
<VOLUME>5</VOLUME>
<BONDING_PHONE />
<SERVICE_NAME />
<SUB_SERVICE_NAME />
<AUTO_DETECT>false</AUTO_DETECT>
<RESTRICT>false</RESTRICT>
<ENHANCED_VIDEO>false</ENHANCED_VIDEO>
<VIDEO_BIT_RATE>automatic</VIDEO_BIT_RATE>
</PARTY>
</ADD_PARTY>
</ACTION>
</TRANS_CONF_1>
發送XML給MCU。
3.3.3. 掛斷終端
掛斷指定會議中的某個終端
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_CONNECT>
<ID>1</ID> //會議ID
<CONNECT>false</CONNECT> //true:連接,false:掛斷
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_CONNECT>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.4. 刪除終端
將指定會議終端某個終端從會議中踢出
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<DELETE_PARTY>
<ID>1</ID> //會議ID
<PARTY_ID>1</PARTY_ID> //終端ID
</DELETE_PARTY>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.5. 靜音
指定會議終端某個終端靜音,靜音后,其他終端無法聽到該終端的聲音
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_VIDEO_MUTE>
<ID>1</ID> //會議ID
<AUDIO_MUTE>true</AUDIO_MUTE> //true:靜音,false:非靜音
<VIDEO_MUTE>true</VIDEO_MUTE> // true:阻塞,false:非阻塞
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_VIDEO_MUTE>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.6. 取消靜音
指定會議終端某個終端取消靜音,取消靜音后,其他終端可聽到該終端的聲音
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_VIDEO_MUTE>
<ID>1</ID> //會議ID
<AUDIO_MUTE>true</AUDIO_MUTE> //true:靜音,false:非靜音
<VIDEO_MUTE>true</VIDEO_MUTE> // true:阻塞,false:非阻塞
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_VIDEO_MUTE>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.7. 閉音
指定會議終端某個終端閉音,閉音后,該終端無法聽到其他終端的聲音
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_BLOCK>
<ID>1</ID> //會議ID
<AUDIO_BLOCK>true</AUDIO_BLOCK> //true:閉音,false:非閉音
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_BLOCK>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.8. 取消閉音
指定會議終端某個終端取消閉音,取消閉音后,該終端可聽到其他終端的聲音
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_BLOCK>
<ID>1</ID> //會議ID
<AUDIO_BLOCK>true</AUDIO_BLOCK> //true:閉音,false:非閉音
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_BLOCK>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.9. 阻塞視頻
指定會議終端某個終端阻塞視頻,阻塞后,該終端畫面不可見
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_VIDEO_MUTE>
<ID>1</ID> //會議ID
<AUDIO_MUTE>true</AUDIO_MUTE> //true:靜音,false:非靜音
<VIDEO_MUTE>true</VIDEO_MUTE> // true:阻塞,false:非阻塞
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_VIDEO_MUTE>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.10. 取消阻塞視頻
指定會議終端某個終端取消阻塞視頻,取消后,該終端畫面可見。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUDIO_VIDEO_MUTE>
<ID>1</ID> //會議ID
<AUDIO_MUTE>true</AUDIO_MUTE> //true:靜音,false:非靜音
<VIDEO_MUTE>true</VIDEO_MUTE> // true:阻塞,false:非阻塞
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_AUDIO_VIDEO_MUTE>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.11. 雙流者
指定會議終端某個終端的為雙流者,指定后此會議中只有該終端才可發送雙流。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_EXCLUSIVE_CONTENT>
<ID>1</ID> //會議ID
<PARTY_ID>1</PARTY_ID> //終端ID
</SET_EXCLUSIVE_CONTENT>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.12. 取消雙流者
取消當前會議中的雙流者。取消雙流者后,會議中所有的終端都可發送雙流
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<REMOVE_EXCLUSIVE_CONTENT>
<ID>1</ID> //會議ID
</REMOVE_EXCLUSIVE_CONTENT>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.13. 設置演講者
可以設置會議的演講者。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_1>
<ACTION>
<SET_LECTURE_MODE>
<ID>1</ID> //會議ID
<LECTURE_MODE>
<ON>true</ON>
<LECTURE_NAME></LECTURE_NAME> // 演講者名稱
<LECTURE_ID>-1</LECTURE_ID> //演講者ID
</LECTURE_MODE>
</SET_LECTURE_MODE>
</ACTION>
</TRANS_CONF_1>
發送XML給MCU。
3.3.14. 設置會議分屏
可以設置的會議分屏模式,如單屏、兩分屏、四分屏,并指定分屏中每個位置的顯示內容。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_1>
<ACTION>
<SET_VIDEO_LAYOUT>
<ID>1</ID> //會議ID
<FORCE>
<LAYOUT>1x1</LAYOUT> //分屏樣式
</FORCE>
</SET_VIDEO_LAYOUT>
</ACTION>
</TRANS_CONF_1>
發送XML給MCU。
3.3.15. 設置終端分屏
可以設置某個終端的分屏,如單屏、兩分屏、四分屏,并指定分屏中每個位置的顯示內容。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_1>
<ACTION>
<SET_PARTY_VIDEO_LAYOUT_EX>
<ID>1</ID> //會議ID
<PARTY_ID>1</PARTY_ID> //終端ID
<LAYOUT_TYPE>personal</LAYOUT_TYPE>
<FORCE>
<LAYOUT>1x1</LAYOUT> //分屏樣式
</FORCE>
</SET_PARTY_VIDEO_LAYOUT_EX>
</ACTION>
</TRANS_CONF_1>
發送XML給MCU。
3.3.16. 輪詢
可以設置的會議的輪詢終端數量、輪詢順序和輪詢間隔。
功能說明
條件
發送
返回
其它
示例代碼:
<TRANS_CONF_2>
<ACTION>
<SET_AUTO_SCAN_ORDER>
<ID>1</ID> //會議ID
<AUTO_SCAN_ORDER>
<PARTY_ORDER>
<ID>1</ID> //終端ID
<ORDER>0</ORDER> //輪詢位置
</PARTY_ORDER>
<PARTY_ORDER>
<ID>0</ID> //終端ID
<ORDER>1</ORDER> //輪詢位置
</PARTY_ORDER>
</AUTO_SCAN_ORDER>
</SET_AUTO_SCAN_ORDER>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
3.3.17. 字幕或會場名稱設置
提供會議過程中對字幕或會場名稱設置的參數。
功能說明
條件
發送
返回
其它
示例代碼:
會場名:
<TRANS_CONF_2>
<ACTION>
<SET_MESSAGE_OVERLAY>
<ID>1953</ID>
<MESSAGE_OVERLAY>
<ON>true</ON>
<MESSAGE_TEXT>11</MESSAGE_TEXT>
<MESSAGE_FONT_SIZE>small</MESSAGE_FONT_SIZE>
<MESSAGE_COLOR>white_font_on_light_blue_background</MESSAGE_COLOR>
<NUM_OF_REPETITIONS>3</NUM_OF_REPETITIONS>
<MESSAGE_DISPLAY_SPEED>slow</MESSAGE_DISPLAY_SPEED>
<MESSAGE_DISPLAY_POSITION>bottom</MESSAGE_DISPLAY_POSITION>
<MESSAGE_DISPLAY_POSITION_INT>10</MESSAGE_DISPLAY_POSITION_INT>
<MESSAGE_FONT_SIZE_INT>24</MESSAGE_FONT_SIZE_INT>
<MESSAGE_TRANSPARENCE>50</MESSAGE_TRANSPARENCE>
</MESSAGE_OVERLAY>
</SET_MESSAGE_OVERLAY>
</ACTION>
</TRANS_CONF_2>
字幕:
<TRANS_CONF_2>
<ACTION>
<SET_MESSAGE_OVERLAY>
<ID>1953</ID>
<MESSAGE_OVERLAY>
<ON>true</ON>
<MESSAGE_TEXT>11</MESSAGE_TEXT>
<MESSAGE_FONT_SIZE>small</MESSAGE_FONT_SIZE>
<MESSAGE_COLOR>white_font_on_light_blue_background</MESSAGE_COLOR>
<NUM_OF_REPETITIONS>3</NUM_OF_REPETITIONS>
<MESSAGE_DISPLAY_SPEED>slow</MESSAGE_DISPLAY_SPEED>
<MESSAGE_DISPLAY_POSITION>bottom</MESSAGE_DISPLAY_POSITION>
<MESSAGE_DISPLAY_POSITION_INT>10</MESSAGE_DISPLAY_POSITION_INT>
<MESSAGE_FONT_SIZE_INT>24</MESSAGE_FONT_SIZE_INT>
<MESSAGE_TRANSPARENCE>50</MESSAGE_TRANSPARENCE>
</MESSAGE_OVERLAY>
</SET_MESSAGE_OVERLAY>
</ACTION>
</TRANS_CONF_2>
發送XML給MCU。
4. 其它
其它MCU廠商認為自己的特色功能,或用戶強烈要求的功能,可在此進行詳細的功能說明及控制接口說明。
-