Index
<p>[TOC]</p>
<h1>Android API Index</h1>
<h1>1. IOTCamera</h1>
<h2>1.1 initial API</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_initIOTC</td>
<td style="text-align: left;">IOTC initialization</td>
</tr>
<tr>
<td style="text-align: left;">TK_unInitIOTC</td>
<td style="text-align: left;">IOTC de-initialization</td>
</tr>
<tr>
<td style="text-align: left;">TK_setMasterRegion</td>
<td style="text-align: left;">P2P area distribution</td>
</tr>
<tr>
<td style="text-align: left;">TK_getIOTCameraVersion</td>
<td style="text-align: left;">Get the IOTCamera version number</td>
</tr>
<tr>
<td style="text-align: left;">TK_getIOTCAPIsVerion</td>
<td style="text-align: left;">Returns the version number of IOTCAPI</td>
</tr>
<tr>
<td style="text-align: left;">TK_getAVAPIsVersion</td>
<td style="text-align: left;">Returns the version number of AVAPI</td>
</tr>
<tr>
<td style="text-align: left;">TK_LanSearch</td>
<td style="text-align: left;">Lan search device</td>
</tr>
<tr>
<td style="text-align: left;">TK_setLogEnable</td>
<td style="text-align: left;">Set on/off logging</td>
</tr>
</tbody>
</table>
<h2>1.2 Callback</h2>
<h3>1.2.1 P2P Callback</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_registerIOTCListener</td>
<td style="text-align: left;">Register IOTC callback</td>
</tr>
</tbody>
</table>
<h3>1.2.2 Audio/Video Callback</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_registerMediaDataListener</td>
<td style="text-align: left;">Register audio and video data callback</td>
</tr>
</tbody>
</table>
<h2>1.3 Connection</h2>
<h3>1.3.1 P2P</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_connect</td>
<td style="text-align: left;">Connect device</td>
</tr>
</tbody>
</table>
<h3>1.3.2 Nebula</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_nebulaStartBind</td>
<td style="text-align: left;">Nebula starts binding the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaStopBind</td>
<td style="text-align: left;">Nebula stops binding the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaConnect</td>
<td style="text-align: left;">Nebula connection device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaLanSearch</td>
<td style="text-align: left;">When adding Nebula AP mode, search the local udid list</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSsidListReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local commands to obtain the device wifi list</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSetWifiReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local instructions to set wifi for the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSetRegionReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local instructions to set P2P partitioning for the device</td>
</tr>
</tbody>
</table>
<h3>1.3.3 General</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_disconnect</td>
<td style="text-align: left;">Disconnect Device and disconnect all internal AV channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_start</td>
<td style="text-align: left;">Connect AV channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_stop</td>
<td style="text-align: left;">Disconnected AV channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_changeAuthKey</td>
<td style="text-align: left;">Modify AuthKey and return the modified AuthKey</td>
</tr>
<tr>
<td style="text-align: left;">TK_isSessionConnected</td>
<td style="text-align: left;">Is the Device connected</td>
</tr>
<tr>
<td style="text-align: left;">TK_isChannelConnected</td>
<td style="text-align: left;">Whether the AV channel is connected</td>
</tr>
<tr>
<td style="text-align: left;">TK_getAVChannelCount</td>
<td style="text-align: left;">Get the number of AV channels that have been opened</td>
</tr>
<tr>
<td style="text-align: left;">TK_getServiceTypeOfChannel</td>
<td style="text-align: left;">Get the corresponding channel ServiceTYpe</td>
</tr>
</tbody>
</table>
<h2>1.4 Video</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startShow</td>
<td style="text-align: left;">Start video reception, decoding, and playback</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopShow</td>
<td style="text-align: left;">Stop video reception, decoding, and playback of all AV channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_getVideoCodecId</td>
<td style="text-align: left;">Get the current video format</td>
</tr>
<tr>
<td style="text-align: left;">TK_setAVFilter</td>
<td style="text-align: left;">Whether to enable the decoding filter</td>
</tr>
<tr>
<td style="text-align: left;">TK_setDecocdeDelayTime</td>
<td style="text-align: left;">Set the maximum delay time and adjust the time interval of each decoding frame</td>
</tr>
</tbody>
</table>
<h2>1.5 Audio</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startSoundToDevice</td>
<td style="text-align: left;">Start audio collection, encoding, and sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopSoundToDevice</td>
<td style="text-align: left;">Stop audio collection, encoding, and sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_startSoundToPhone</td>
<td style="text-align: left;">Start audio reception, decoding, and playback</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopSoundToPhone</td>
<td style="text-align: left;">Stop audio receiving, decoding, and playing</td>
</tr>
<tr>
<td style="text-align: left;">TK_setAudioCustom (original API: TK_setAudioOutput)</td>
<td style="text-align: left;">Whether you need to play or send audio by yourself, generally used for third-party echo cancellation functions</td>
</tr>
<tr>
<td style="text-align: left;">TK_playAudio</td>
<td style="text-align: left;">Play audio data after echo cancellation, generally used for third-party echo cancellation functions</td>
</tr>
<tr>
<td style="text-align: left;">TK_sendAudio</td>
<td style="text-align: left;">Send audio data after echo cancellation, generally used for third-party echo cancellation functions</td>
</tr>
<tr>
<td style="text-align: left;">TK_setSoundToDeviceFormats</td>
<td style="text-align: left;">Set audio intercom format, sampling rate, etc.</td>
</tr>
<tr>
<td style="text-align: left;">TK_getSoundToDeviceCodeId</td>
<td style="text-align: left;">Set audio intercom format</td>
</tr>
<tr>
<td style="text-align: left;">TK_getSoundToPhoneCodeId</td>
<td style="text-align: left;">Get audio monitoring format</td>
</tr>
<tr>
<td style="text-align: left;">TK_setSoundToDeviceCaptureSource</td>
<td style="text-align: left;">Set the audio intercom collection source and collection audio gain, which can be used to adapt the headset function</td>
</tr>
<tr>
<td style="text-align: left;">TK_setSoundToPhonePlaySource</td>
<td style="text-align: left;">Set the playback source for audio monitoring, which can be used to adapt the headphone function</td>
</tr>
</tbody>
</table>
<h2>1.6 Record/Snapshot</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startRecording</td>
<td style="text-align: left;">Start recording</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopRecording</td>
<td style="text-align: left;">Stop recording</td>
</tr>
<tr>
<td style="text-align: left;">TK_snapshot</td>
<td style="text-align: left;">Video screenshot</td>
</tr>
</tbody>
</table>
<h2>1.7 Send Command</h2>
<h3>1.7.1 P2P</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_sendIOCtrlToChannel</td>
<td style="text-align: left;">Send command to Device</td>
</tr>
<tr>
<td style="text-align: left;">TK_sendJsonCtrlToChannel</td>
<td style="text-align: left;">Send json string command to the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_removeAllCmd</td>
<td style="text-align: left;">Clear command queue</td>
</tr>
</tbody>
</table>
<h3>1.7.2 Nebula</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_nebulaSendData</td>
<td style="text-align: left;">Nebula sends json command</td>
</tr>
</tbody>
</table>
<h2>1.8 File Upload/Download</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startDownload</td>
<td style="text-align: left;">Start file download</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopDownload</td>
<td style="text-align: left;">Stop file download</td>
</tr>
<tr>
<td style="text-align: left;">TK_startUpload</td>
<td style="text-align: left;">Start file upload</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopUpload</td>
<td style="text-align: left;">Stop file upload</td>
</tr>
</tbody>
</table>
<h1>2. KalayCameraControl(command encapsulation)</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_commandSetRecord</td>
<td style="text-align: left;">Set the device SD card recording mode</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetRecord</td>
<td style="text-align: left;">Get the current SD card recording mode of the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandListEvent</td>
<td style="text-align: left;">Get device event list</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandRecordPlayControl</td>
<td style="text-align: left;">Event playback control playback</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetStreamCtrl</td>
<td style="text-align: left;">Set device resolution</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetStreamCtrl</td>
<td style="text-align: left;">Get the current resolution of the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetMotionDetect</td>
<td style="text-align: left;">Set the sensitivity of device motion detection</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetMotionDetect</td>
<td style="text-align: left;">Get the current sensitivity of the device's motion detection</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetSupportStream</td>
<td style="text-align: left;">Get the current number of device channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetAudioOutFormat</td>
<td style="text-align: left;">Get device audio format</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetPassword</td>
<td style="text-align: left;">Change device password</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetRecordDuration</td>
<td style="text-align: left;">Get the total duration of sd card events</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetRecordProgress</td>
<td style="text-align: left;">Set playback event progress</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandListWifiAp</td>
<td style="text-align: left;">Get the Wifi list around the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetWifi</td>
<td style="text-align: left;">Set the device's Wifi network</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetWifi</td>
<td style="text-align: left;">Get the WiFi currently set by the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetVideoMode</td>
<td style="text-align: left;">Set screen mirroring/flip state</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetVideoMode</td>
<td style="text-align: left;">Get screen mirroring/flip setting status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandFormatExtStorage</td>
<td style="text-align: left;">Format SD card</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetChannelName</td>
<td style="text-align: left;">Get all channel names</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetChannelName</td>
<td style="text-align: left;">Set channel name</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandXmCall</td>
<td style="text-align: left;">Doorbell answer, when receiving the device doorbell call command, use this API to reply</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetName</td>
<td style="text-align: left;">Set device name</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetTimeSync</td>
<td style="text-align: left;">Synchronize mobile phone time to device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetPtz</td>
<td style="text-align: left;">PTZ control</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandOta</td>
<td style="text-align: left;">OTA upgrade</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceInfo</td>
<td style="text-align: left;">Get device information</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceSupportOta</td>
<td style="text-align: left;">Get whether the device supports OTA upgrade</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceSupportCloud</td>
<td style="text-align: left;">Get whether the device supports cloud storage</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceSetCloud</td>
<td style="text-align: left;">Set the device cloud storage recording status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceGetCloud</td>
<td style="text-align: left;">Get the device cloud storage recording status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetEventDate</td>
<td style="text-align: left;">Get the date of SD card event</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetHumanDetection</td>
<td style="text-align: left;">Get the humanoid detection switch of the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetHumanDetection</td>
<td style="text-align: left;">Set the device humanoid detection switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetNightVision</td>
<td style="text-align: left;">Get the device night vision switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetNightVision</td>
<td style="text-align: left;">Set the device night vision switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetSummerTime</td>
<td style="text-align: left;">Get the device daylight saving time switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetFileList</td>
<td style="text-align: left;">Get downloaded file list</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDownLoadFile</td>
<td style="text-align: left;">Get file download channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandUploadFile</td>
<td style="text-align: left;">Get file upload channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeleteFile</td>
<td style="text-align: left;">Delete file</td>
</tr>
</tbody>
</table>
<h1>3. Command Usage Examples</h1>
<h1>4. VideoMonitor(Player)</h1>
<h2>4.1 Method</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_attachCamera</td>
<td style="text-align: left;">Bind Camera instance to player</td>
</tr>
<tr>
<td style="text-align: left;">TK_deattachCamera</td>
<td style="text-align: left;">Player unbinds Camera</td>
</tr>
<tr>
<td style="text-align: left;">setScaleType</td>
<td style="text-align: left;">Select the automatic scaling method of the control, the default is SCALE_ASPECT</td>
</tr>
</tbody>
</table>
<h2>4.2 Callback</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_setMonitorListener</td>
<td style="text-align: left;">Player status monitoring</td>
</tr>
</tbody>
</table>
<h1>5. Demo</h1>
<h1>iOS API Index</h1>
<h1>1. IOTCamera</h1>
<h2>1.1 initial API</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_InitIOTCWithLiceseKey</td>
<td style="text-align: left;">IOTC initialization</td>
</tr>
<tr>
<td style="text-align: left;">TK_unInitIOTC</td>
<td style="text-align: left;">IOTC de-initialization</td>
</tr>
<tr>
<td style="text-align: left;">TK_initWithName</td>
<td style="text-align: left;">Initialize Camera</td>
</tr>
<tr>
<td style="text-align: left;">TK_getIOTCameraVersion</td>
<td style="text-align: left;">Get the IOTCamera version number</td>
</tr>
<tr>
<td style="text-align: left;">TK_getIOTCAPIsVerion</td>
<td style="text-align: left;">Returns the version number of IOTCAPI</td>
</tr>
<tr>
<td style="text-align: left;">TK_getAVAPIsVersion</td>
<td style="text-align: left;">Returns the version number of AVAPI</td>
</tr>
<tr>
<td style="text-align: left;">TK_setMasterRegion: (TKRegion) regin</td>
<td style="text-align: left;">P2P partition distribution</td>
</tr>
<tr>
<td style="text-align: left;">TK_setLogEnable</td>
<td style="text-align: left;">Set on/off logging</td>
</tr>
</tbody>
</table>
<h2>1.2 Callback</h2>
<h3>1.2.1 P2P Callback</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">p2pDelegate</td>
<td style="text-align: left;">Register IOTC callback</td>
</tr>
</tbody>
</table>
<h3>1.2.2 Audio/Video Callback</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">MediaDelegate</td>
<td style="text-align: left;">Register audio and video data callback</td>
</tr>
</tbody>
</table>
<h2>1.3 Connection</h2>
<h3>1.3.1 P2P</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_connect</td>
<td style="text-align: left;">Connection Device</td>
</tr>
<tr>
<td style="text-align: left;">TK_LanSearch</td>
<td style="text-align: left;">Lan search device</td>
</tr>
</tbody>
</table>
<h3>1.3.2 Nebula</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_nebulaBind</td>
<td style="text-align: left;">Nebula binding device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaConnect</td>
<td style="text-align: left;">Nebula connection device</td>
</tr>
<tr>
<td style="text-align: left;">TK_NebulaLanSearchTimeout</td>
<td style="text-align: left;">When Nebula AP mode is added, search the local udid list</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSsidListReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local commands to obtain the device wifi list</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSetWifiReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local instructions to set wifi for the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_nebulaSetRegionReq</td>
<td style="text-align: left;">When adding Nebula AP mode, send local instructions to set P2P partitioning for the device</td>
</tr>
</tbody>
</table>
<h3>1.3.3 General</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_disconnect</td>
<td style="text-align: left;">Disconnect Device and disconnect all internal AV channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_start</td>
<td style="text-align: left;">Connect AV channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_stop</td>
<td style="text-align: left;">Disconnected AV channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_getViewAccountOfChannel</td>
<td style="text-align: left;">Get the user name of the specified channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_getViewPasswordOfChannel</td>
<td style="text-align: left;">Get the password of the specified channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_getServiceTypeOfChannel</td>
<td style="text-align: left;">Get the corresponding channel ServiceTYpe</td>
</tr>
</tbody>
</table>
<h2>1.4 Video</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_StartAVFilterWithChannel</td>
<td style="text-align: left;">Whether to enable the decoding filter</td>
</tr>
<tr>
<td style="text-align: left;">TK_startShow</td>
<td style="text-align: left;">Start video reception, decoding, and playback</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopShow</td>
<td style="text-align: left;">Stop video reception, decoding, and playback of all AV channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_getVideoCodecId</td>
<td style="text-align: left;">Get the current video format</td>
</tr>
<tr>
<td style="text-align: left;">TK_setDecocdeDelayTime</td>
<td style="text-align: left;">Set the maximum delay time and adjust the time interval of each decoding frame</td>
</tr>
</tbody>
</table>
<h2>1.5 Audio</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startSoundToPhone</td>
<td style="text-align: left;">Start audio reception, decoding, and playback</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopSoundToPhone</td>
<td style="text-align: left;">Stop audio receiving, decoding, and playing</td>
</tr>
<tr>
<td style="text-align: left;">TK_startSoundToDevice</td>
<td style="text-align: left;">Start audio collection, encoding, and sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopSoundToDevice</td>
<td style="text-align: left;">Stop audio collection, encoding, and sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_playAECAudio</td>
<td style="text-align: left;">Play audio data after echo cancellation, generally used for third-party echo cancellation functions</td>
</tr>
<tr>
<td style="text-align: left;">TK_sendAecAudio</td>
<td style="text-align: left;">Send audio data after echo cancellation, generally used for third-party echo cancellation functions</td>
</tr>
<tr>
<td style="text-align: left;">TK_startSendAudioChannel</td>
<td style="text-align: left;">Start intercom sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopSendAudioChannel</td>
<td style="text-align: left;">Close intercom sending</td>
</tr>
<tr>
<td style="text-align: left;">TK_setAudioSessionPlayMode</td>
<td style="text-align: left;">Set the audio playback mode, the default is Speaker</td>
</tr>
<tr>
<td style="text-align: left;">TK_setSoundToDeviceFormatsChannel (original API: TK_setAudioSpeakFormatsChannel)</td>
<td style="text-align: left;">Set audio intercom format, sampling rate, etc.</td>
</tr>
<tr>
<td style="text-align: left;">TK_getSoundToPhoneCodeId (original API: TK_getAudioOutputCodecId)</td>
<td style="text-align: left;">Get the audio listening format</td>
</tr>
<tr>
<td style="text-align: left;">TK_getSoundToDeviceCodeId (original API: TK_getAudioInputCodecId)</td>
<td style="text-align: left;">Get the audio intercom format</td>
</tr>
<tr>
<td style="text-align: left;">TK_isAudioOutputavChannel</td>
<td style="text-align: left;">Handle sending audio data and throw it up</td>
</tr>
</tbody>
</table>
<h2>1.6 Record/Snapshot</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_initVideoGenerator</td>
<td style="text-align: left;">Initialization of local recording function</td>
</tr>
<tr>
<td style="text-align: left;">TK_startRecordingForChannel</td>
<td style="text-align: left;">Start recording</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopRecording</td>
<td style="text-align: left;">Stop recording</td>
</tr>
<tr>
<td style="text-align: left;">TK_getChannel</td>
<td style="text-align: left;">Fill in the video data of the specified channel</td>
</tr>
<tr>
<td style="text-align: left;">TK_getSnapShotImageWithChannel</td>
<td style="text-align: left;">Video screenshot</td>
</tr>
</tbody>
</table>
<h2>1.7 Send Command</h2>
<h3>1.7.1 P2P</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_sendIOCtrlToChannel</td>
<td style="text-align: left;">Send command to Device</td>
</tr>
<tr>
<td style="text-align: left;">TK_sendJsonCtrlToChannel</td>
<td style="text-align: left;">Send json string command to the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_removeAllCmd</td>
<td style="text-align: left;">Clear the command queue</td>
</tr>
</tbody>
</table>
<h3>1.7.2 Nebula</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_nebulaSendData</td>
<td style="text-align: left;">Nebula sends json command</td>
</tr>
</tbody>
</table>
<h2>1.8 File Upload/Download</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_startDownload</td>
<td style="text-align: left;">Start file download</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopDownload</td>
<td style="text-align: left;">Stop file download</td>
</tr>
<tr>
<td style="text-align: left;">TK_startUpload</td>
<td style="text-align: left;">Start file upload</td>
</tr>
<tr>
<td style="text-align: left;">TK_stopUpload</td>
<td style="text-align: left;">Stop file upload</td>
</tr>
</tbody>
</table>
<h1>二、KalayCameraControl(command encapsulation)</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">API</th>
<th style="text-align: left;">Function Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">TK_commandNebulaSsidListReq</td>
<td style="text-align: left;">AP gets WiFi list</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandNebulaSetWifiReq</td>
<td style="text-align: left;">AP Set WiFi</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSupportStreamWithChannel</td>
<td style="text-align: left;">Get the number of device channels</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandListWifiWithChannel</td>
<td style="text-align: left;">Get WiFi list</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetWifiWithChannel</td>
<td style="text-align: left;">Set device WiFi network</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetWifiWithChannel</td>
<td style="text-align: left;">Get the current WiFi network of the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetAudioOutFormatWithChannel</td>
<td style="text-align: left;">Get device audio format</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandCallWithChannel</td>
<td style="text-align: left;">Get doorbell call</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceInfoWithChannel</td>
<td style="text-align: left;">Get device information</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetRecordWithChannel</td>
<td style="text-align: left;">Get the device SD card recording mode</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetRecordWithChannel</td>
<td style="text-align: left;">Set the device SD card recording mode</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetStreamWithChannel</td>
<td style="text-align: left;">Get device resolution</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetStreamWithChannel</td>
<td style="text-align: left;">Set device resolution</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetMotionDetectWithChannel</td>
<td style="text-align: left;">Get the sensitivity of device displacement detection</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetMotionDetectWithChannel</td>
<td style="text-align: left;">Set the sensitivity of device motion detection</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetPasswdWithChannel</td>
<td style="text-align: left;">Set device password</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetVideoModeWithChannel</td>
<td style="text-align: left;">Set screen mirroring/flip state</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetVideoModeWithChannel</td>
<td style="text-align: left;">Get screen mirroring/flip status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandFormatExtStorageWithChannel</td>
<td style="text-align: left;">Format SD card</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetChannelNameWithChannel</td>
<td style="text-align: left;">Get channel name</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetChannelNameWithChannel</td>
<td style="text-align: left;">Set channel name</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandPushDeviceNameWithChannel</td>
<td style="text-align: left;">Get the current device name</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandTimeSyncWithChannel</td>
<td style="text-align: left;">Sync time</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandPtzWithChannel</td>
<td style="text-align: left;">Device PTZ control</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandOTAWithChannel</td>
<td style="text-align: left;">Device OTA upgrade</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceSupportOTAWithChannel</td>
<td style="text-align: left;">Get whether the device supports OTA</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandDeviceSupportCloudWithChannel</td>
<td style="text-align: left;">Get whether the device supports cloud storage</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetCloudWithChannel</td>
<td style="text-align: left;">Set the device cloud storage recording status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetCloudWithChannel</td>
<td style="text-align: left;">Get the device cloud storage recording status</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetHumanDetectionWithChannel</td>
<td style="text-align: left;">Set the device humanoid detection switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetHumanDetectionWithChannel</td>
<td style="text-align: left;">Get the humanoid detection switch of the device</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetNightVisionWithChannel</td>
<td style="text-align: left;">Set device night vision switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetNightVisionWithChannel</td>
<td style="text-align: left;">Get the device night vision switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetSummerTimeWithChannel</td>
<td style="text-align: left;">Set device daylight saving time switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetSummerTimeWithChannel</td>
<td style="text-align: left;">Get the device daylight saving time switch</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandListEventWithChannel</td>
<td style="text-align: left;">Get event list</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandPlayRecordWithChannel</td>
<td style="text-align: left;">Event playback control play</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetPlaybackWithChannel</td>
<td style="text-align: left;">Get event playback progress control</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandSetRecordProgessWithChannel</td>
<td style="text-align: left;">Set event playback progress control</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetEventDateWithChannel</td>
<td style="text-align: left;">Get the date of SD card event</td>
</tr>
<tr>
<td style="text-align: left;">TK_commandGetStorageInfoWithChannel</td>
<td style="text-align: left;">Get SD memory size (4x) using</td>
</tr>
</tbody>
</table>