设备网络SDK开发使用手册


<?xml version="1.0" encoding="utf-8"?>
<!--req, 录播主机能力集描述 -->
<RecordingHostAbility version="2.0">
  <oneKeyDelayTime min="1" max="3600" default="600"/>
  <!--req, 最大可配一键延迟时间,单位s-->
  <supportDirectMode opt="auto,manu" />
  <!--req, 支持的导播模式 auto-自动, manu-手动-->
  <LogoOverlay>
    <!--req, 图标叠加信息,支持则返回,不支持不返回-->
    <logoSize min="" max=""/>
    <!--req,支持的logo大小,以字节为单位-->
    <logoNameLen min="" max=""/>
    <!--req,logo名称长度大小-->
    <logoStatus opt = " show, hide "/>
    <!--req,logo显示状态-->
    <logoCorordinateX min="" max=""/>
    <!--req,logo显示区域X坐标范围-->
    <logoCorordinateY min="" max=""/>
    <!--req,logo显示区域Y坐标范围-->
    <LogoFlash>
      <!--req,支持logo闪烁-->
      <enabled>true</enabled>
    </LogoFlash>
    <LogoTranslucent>
      <!--req,logo半透明-->
      <enabled>true</enabled>
    </LogoTranslucent>
  </LogoOverlay >
  <PublishCfg>
    <!--req, 支持的信息发布方式-->
    <supportPublishType opt="http,ftp"/>
    <!--req, 支持发布的码流类型:0-主码流,1-子码流,3-码流3-->
    <supportPublishStreamType opt=" 0-mainstream,1-substream,3-stream3"/>
  </PublishCfg>
  <!--req, 支持的远程控制类型,开始,结束,暂停、延长录播时间、恢复、一键开始屏蔽、一键停止屏蔽-->
  <supportRemoteCtrlType opt="start,stop,pause,restart,delay,release,startShield,stopShield"/>
  <CourseInfoCfg>
    <!--req, 课程信息配置-->
    <maxCourseNum>60</maxCourseNum>
    <!--req, 最大可支持的课程数-->
    <maxLessionNumOneDay>12</maxLessionNumOneDay><!--req, 每天上课节次-->
  </CourseInfoCfg><!--req, 课程信息配置-->
  <ManualDirect>
    <!--req, 手动导播参数配置(画中画配置)-->
    <enableBaseChan opt="true,false"/>
    <!--req, 是否支持画中画所在通道,录播主机不支持,不返回-->
    <enableBackChan opt="true,false"/>
    <!--req, 是否支持画中画模式背景通道,录播主机中表示导播通道-->
    <supportPIPMode opt="PIP,picAverage, picSplice"/>
    <!--req, 支持的画面布局模式-->
    <PIPModePositionList>
      <PIPModePosition>
        <smallPicNum>1</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bottomRight</positionName>
        <leftX min="" max=""/>
        <leftY min="" max=""/>
        <height min="" max=""/>
        <widtth min="" max=""/>
      </PIPModePosition>
      <PIPModePosition>
        <smallPicNum>1</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bottomLeft</positionName>
        <leftX min="" max=""/>
        <leftY min="" max=""/>
        <height min="" max=""/>
        <width min="" max=""/>
      </PIPModePosition>
    </PIPModePositionList>
    <PicAverageModePositionList>
      <!--req, 画面均分-->
      <supportAverage opt="1,2"/>
      <!--req, 画面均分数,1-一画面均分,2-2画面均分-->
      <PicAverageModePosition>
        <smallPicNum>1</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bottomRight</positionName>
        <leftX min="" max=""/>
        <leftY min="" max=""/>
        <height min="" max=""/>
        <width min="" max=""/>
      </PicAverageModePosition>
    </PicAverageModePositionList>
    <PicSpliceModePositionList>
      <!--req, 画面分割模式-->
      <PicSpliceModePosition>
        <smallPicNum>2</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bigPicOnLeft</positionName>
        <picPositionList>
          <picPosition>
            <index>1</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>2</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
        </picPositionList>
      </PicSpliceModePosition>
      <PicSpliceModePosition>
        <smallPicNum>2</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bigPicOnRight</positionName>
        <picPositionList>
          <picPosition>
            <index>1</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>2</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
        </picPositionList>
      </PicSpliceModePosition>
      <PicSpliceModePosition>
        <smallPicNum>3</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bigPicOnLeft</positionName>
        <picPositionList>
          <picPosition>
            <index>1</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>2</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>3</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
        </picPositionList>
      </PicSpliceModePosition>
      <PicSpliceModePosition>
        <smallPicNum>3</smallPicNum>
        <!--req, 小画面个数-->
        <positionName>bigPicOnRight</positionName>
        <picPositionList>
          <picPosition>
            <index>1</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>2</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
          <picPosition>
            <index>3</index>
            <leftX min="" max=""/>
            <leftY min="" max=""/>
            <height min="" max=""/>
            <width min="" max=""/>
          </picPosition>
        </picPositionList>
      </PicSpliceModePosition>
    </PicSpliceModePositionList>
  </ManualDirect>
  <PublishCfg>
    <!--req, 一键发布配置-->
    <supportMode opt="http,ftp,ftpDir"/>
    <!--req, 支持一键发布的方式-->
    <PublishAddr>
      <!--req, 发布地址信息-->
      <HttpInfo>
        <URLLen min="0" max="256"/>
        <!--req, 支持的URL长度-->
      </HttpInfo>
      <FTP>
        <!--req, FTP,支持多级目录填写-->
        <protocalType opt="FTP,SFTP"/>
        <!--req, 协议类型-->
        <port min="" max=""/>
        <!--req, 当为IP地址时,有效端口范围-->
        <addrType opt="IPV4,IPV6,Domain"/>
        <!--req, 支持的地方类型,IPV4,IPv6,域名-->
        <userNameLen min="" max=""/>
        <!--req, 用户名长度-->
        <passwordLen min="" max=""/>
        <!--req, 密码长度-->
        <DirLen min="" max=""/>
        <!--req, 目录长度-->
      </FTP>
      <FTPDir>
        <!--req, FTP,支持自动目录-->
        <protocalType opt="FTP,SFTP"/>
        <!--req, 协议类型-->
        <port min="" max=""/>
        <!--req, 当为IP地址时,有效端口范围-->
        <addrType opt="IPV4,IPV6,Domain"/>
        <!--req, 支持的地方类型,IPV4,IPv6,域名-->
        <userNameLen min="" max=""/>
        <!--req, 用户名长度-->
        <passwordLen min="" max=""/>
        <!--req, 密码长度-->
        <DirlLevel opt="root,top,sub"/>
        <!--req, 支持的目录结构,root- 根目录,top- 一级目录,sub- 二级目录-->
        <topDirMode opt="deviceName,deviceNo,deviceIP,sel-define"/>
        <!--req, 一级目录定义方式-->
        <subDirMode opt="channelName,channelNo,courseTitle,drivingDate,sel-define"/>
        <!--req, 二级目录方式-->
      </FTPDir>
    </PublishAddr>
    <PublishChanRecord>
      <streamType opt="main,sub,three"/>
      <!--req, 支持发布的码流类型-->
    </PublishChanRecord>
    <publishMode opt="lastLesson,byTime"/>
    <!--req, 支持发布的方式,lastLesson- 最后一堂课,byTime- 按时间方式处理-->
  </PublishCfg>
  <!--req, 支持的分辨率- 标清,D1,720P,1080P-->
  <resolutionMode opt="sd,d1,720p ,1080p"/>
  <LogoUpload>
    <!--req, 支持的logo上传信息-->
    <logoSize min="" max=""/>
    <!--req, 支持的logo大小,以字节为单位-->
    <logoStatus opt = " show, hide "/>
    <!--req, logo显示状态-->
    <logoCorordinateX min="" max=""/>
    <!--req, logo显示区域X坐标范围-->
    <logoCorordinateY min="" max=""/>
    <!--req, logo显示区域Y坐标范围-->
    <LogoFlash>
      <!--req, 支持logo闪烁-->
      <enabled>true</enabled>
    </LogoFlash>
    <LogoTranslucent>
      <!--req,logo半透明-->
      <enabled>true</enabled>
    </LogoTranslucent>
  </LogoUpload>
  <AudioInCap>
    <MixAudioIn>
      <enabled opt="true,false"/>
      <audioInputType opt="micIn, lineIn"/>
      <!--opt, xs:string-->
      <highPassFilter opt="0,8,16,24,31,39,47,55,63,71,79,87,94,102,110,118,126,134,
                    142,150,157,165,173,181,189,197,205,213,220,228,236,244,252,260,
                    268,276,283,291,299,307,315,323,331,339,346,354,362,370,378,386,
                    394,402,409,417,425,433,441,449,457,465,472,480,488,496,504,512,
                    520,528,535,543,551,559,567,575,583,591,598,606,614,622,630,638,
                    646,654,661,669,677,685,693,701,709,717,724,732,740,748,756,764,
                    772,780,787,795,803,811,819,827,835,843,850,858,866,874,882,890,
                    898,906,913,921,929,937,945,953,961,969,976,984,992,1000" default="30">
        <!--req, xs:integer;Hz-->
      </highPassFilter>
      <noiseMargin opt="1000,660,657,653,650,647,643,640,637,633,-630,627,623,620,617,613,
                 610,607,603,600,597,593,590,587,583,580,577,573,570,567,563,560,557,553,
                 550,547,543,540,537,533,530,527,523,520,517,513,510,507,503,500,497,493,
                 490,487,483,480,477,473,470,467,463,460,457,453,450,447,443,440,437,433,
                 430,427,423,420,417,413,410,407,403,400,397,393,390,387,383,380,377,373,
                 370,367,363,360,357,353,350,347,343,340,337,333,330,327,323,320,317,313,
                 310,307,303,300,297,293,290,287,283,280,277,273,270,267,263,260,257,253,
                 250,247,243,240" default="30">
        <!--req, xs:integer;-dB-->
      </noiseMargin>
      <AutoLimitWave>
        <!--dep,audioInputType-->
        <FBCEnable opt="true,false">
          <!--req, xs:Boolean-->
        </FBCEnable>
        <mode opt="fast,general,slow" default="general">
          <!--req, xs:string-->
        </mode>
        <filterQValue opt="40,10" default="40">
          <!--req, xs:integer;Oct-->
        </filterQValue>
        <staticFilterNum min="0" max="12" default="0">
          <!--req, xs:integer-->
        </staticFilterNum>
      </AutoLimitWave>
      <DSPParameter>
        <!--opt, 数字信号处理芯片参数-->
        <FBCEnable>
          <!--req, xs:boolean, opt="true,false"-->
        </FBCEnable>
        <volume>
          <!--req, xs:integer,输入音量-->
        </volume>
      </DSPParameter>
    </MixAudioIn>
    <AudioInVlome>
      <type opt="audioOutput,audioEncode,specific">
        <!--req, xs:integer-->
      </type>
      <volume min="0" max="127" defalut="50">
        <!--req, xs:integer-->
      </volume>
      <index>
        <!--opt, xs:string, if <type> is specific, 音频输出通道索引 -->
      </index>
      <name>
        <!--opt, xs:string, if <type> is specific, 音频输出通道名称 -->
      </name>
      <supportVolumeEx opt="true,false">
        <!--req, xs:boolean,是否支持输出音量扩展-->
      </supportVolumeEx>
    </AudioInVlome>
  </AudioInCap>
  <AudioOutCap>
    <MixAudioOut>
      <enabled opt="true,false"/>
      <modulatorEnbale opt="true,false"/>
      <postFilter opt="false,true" default="true"/>
      <!--req,xs:Boolean-->
      <limitPressure opt="false,true" default="true"/>
      <!--req, xs:Boolean-->
      <modulatorValue min="0" max="127" default="10">
        <!--req,xs:integer;Oct-->
      </modulatorValue>
      <triggerTime opt="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,
                     3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,6,7,7,7,8,8,8,9,9,10,10,11,11,12,12,13,
                     14,15,15,16,17,18,19,20,21,23,24,25,27,29,30,32,34,36,38,41,43,46,49,52,
                     55,59,63,67,72,76,82,87,93,10,17,114,123,132,141,152,163,175,188,23,218,
                     235,254,274,296,320,347,375,47,441,479,520,566,616,671,731,798,872"
                   default="4">
        <!--req,xs:integer;ms-->
      </triggerTime>
      <freeTime opt="98,11,15,18,112,116,120,124,129,133,138,143,148,154,159,165,171,177,184,
                  191,198,26,213,222,230,239,248,258,268,278,289,31,313,325,338,352,366,381,397,
                  413,430,448,467,486,57,528,551,575,60,626,653,682,712,743,776,811,848,887,927,
                  970,1014,1062,1111,1163,1218,1276,1337,142,1470,1541,1617,1697,1781,1870,1964,
                  2063,2168,2279,2397,2521,2653,2792,2940,3097,3263,3439,3626,3825,4035,4259,4497,
                  4750,5020,536,5611,5936,6282,6651,7045,7465,7914,8393,895,9452,10037,10664,11335,
                  12053,12824,13650,14537,15489,16511,17610,18793,20065,21435,22911,2452,26219,
                  28073,30075,32239,34580,37114,39859,42834,46062" default="42">
        <!--req,xs:integer;ms-->
      </freeTime>
      <compressThreshold opt="1,2,4,8" defalut="2">
        <!--req, xs:integer;x-->
      </compressThreshold>
      <compressMode opt="soft,hard" default="soft">
        <!--req, xs:string;ms-->
      </compressMode>
      <compressRate min="0" max="127">
        <!--req, xs:integer;x-->
      </compressRate>
      <recoveryGain opt="1,2,4,8" defalut="2">
        <!--req, xs:integer;x-->
      </recoveryGain>
      <outputGain opt="100,421,361,325,30,281,265,252,240,230,221,212,25,198,192,186,180,175,170,
                    165,161,156,152,148,145,141,138,134,131,128,125,122,120,117,114,112,110,17,15,13,
                    10,98,96,94,92,90,88,86,85,83,81,79,78,76,74,73,71,70,68,67,65,64,62,61,60,58,57,
                    56,54,53,52,51,49,48,47,46,45,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,
                    26,25,24,23,23,22,21,20,19,18,17,17,16,15,14,13,12,12,11,10,9,9,8,7,6,6,5,4,3,3,2,1,1,0">
        <!--req, xs:integer-->
      </outputGain>
      <outputMute opt="true,false">
        <!--opt,xs:Boolean, 输出静音 -->
      </outputMute>
      <soundQualityHanding opt="true,false">
        <!--opt,xs:Boolean, 音质处理 -->
      </soundQualityHanding>
      <supportOutputGainEx opt="true,false">
        <!--req, xs:boolean,是否支持输出增益扩展-->
      </supportOutputGainEx>
    </MixAudioOut>
    <AudioOutVlome>
      <type opt="audioOutput,audioEncode"/>
      <volume min="0" max="127" defalut="50">
        <!--req, xs:integer-->
      </volume>
    </AudioOutVlome>
  </AudioOutCap>
  <MenuOutputCfg>
    <!--req 设备本地输出菜单配置-->
    <homologousMode opt="true,false"/>
    <outputMode opt="auto,VGA,HDMI"/>
    <!--req 设备支持的本地菜单输出方式,auto-自动,VGA-VGA口输出菜单,HDMI-HDMI口输出菜单-->
  </MenuOutputCfg >
  <VideoOutResolutionCfg>
    <!--req 设备本地视频输出分辨率-->
    <VideoOutChanList>
      <VideoOutChanEntry>
        <VideoOutChanNum>1</VideoOutChanNum>
        <Type>VGA</Type>
        <resolution opt="1024x768,1280x720,1280x1024,1680x1050,1920x1080"/>
        <!--req, 支持的分辨率,以设备实际返回为准-->
      </VideoOutChanEntry>
      <VideoOutChanEntry>
        <VideoOutChanNum>2</VideoOutChanNum>
        <Type>HDMI</Type>
        <resolution opt="1024x768,1280x720,1280x1024,1680x1050,1920x1080"/>
        <!--req, 支持的分辨率,以设备实际返回为准-->
      </VideoOutChanEntry>
    </VideoOutChanList>
  </VideoOutResolutionCfg>
  <PPTDetection>
    <!--req, PPT检测-->
    <enable opt="true,false"/>
    <!--req, 是否支持PPT检测,支持则返回,不支持返回false-->
    <detectLevel min="0" max="100"/>
    <!--req, 设备支持的灵敏度检测范围-->
    <enablePartScreen opt="true,false"/>
    <!--req, 是否支持配置区域-->
    <changePixelNum min="" max=""/>
    <!--dep, "像素点检测阈值[0,1000](ps : 一幅图像有多少像素在变化)"-->
  </PPTDetection>
  <TVScreen>
    <picStayTime min="" max=""/>
    <!--opt导播画面停留时间-->
    <TVScreenNo min="" max=""/>
    <!--opt,导播屏编号-->
  </TVScreen>
  <ScreenSwitch>
    <enable>true</enable>
    <!--req, “表示支持ScreenSwitch的控制接口,与具体的字段无关”-->
  </ScreenSwitch>
</RecordingHostAbility>