IOS旧API升级至新API
<p>[TOC]</p>
<h1>1. 旧API删除,请用新API代替</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">旧API</th>
<th style="text-align: left;">新API</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Camera : delegate</td>
<td style="text-align: left;">Camera : P2PDelegate & Camera : MediaDelegate</td>
</tr>
<tr>
<td style="text-align: left;">Camera : tpnsInterval</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : isUsingGaAudioUnit</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : isAVChannelStartShow:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getThumbnail:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : deleteThumbnail:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : setHWDecodingAbility: requestHWDecode:</td>
<td style="text-align: left;">Camera :TK_setHWDecodingAbility: requestHWDecode:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : initWithName:</td>
<td style="text-align: left;">Camera :TK_initWithName:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getViewAccountOfChannel:</td>
<td style="text-align: left;">Camera :TK_getViewAccountOfChannel:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getViewPasswordOfChannel</td>
<td style="text-align: left;">Camera :TK_getViewPasswordOfChannel:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : initIOTC</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : TK_initIOTC: success: failure:</td>
<td style="text-align: left;">Camera : TK_InitIOTCWithLiceseKey: privateKey: success: failure:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : uninitIOTC</td>
<td style="text-align: left;">Camera :TK_uninitIOTC</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getIOTCameraVersion</td>
<td style="text-align: left;">Camera :TK_getIOTCameraVersion:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getIOTCAPIsVerion</td>
<td style="text-align: left;">Camera :TK_getIOTCAPIsVersion:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getAVAPIsVersion</td>
<td style="text-align: left;">Camera :TK_getAVAPIsVersion:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : LanSearch: timeout:</td>
<td style="text-align: left;">Camera :TK_LanSearch: timeout:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : connect</td>
<td style="text-align: left;">Camera :TK_connect</td>
</tr>
<tr>
<td style="text-align: left;">Camera : start: viewAccount: viewPassword: is_playback:</td>
<td style="text-align: left;">Camera : TK_start: viewAccount: viewPassword: authType: is_playback:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : disconnect</td>
<td style="text-align: left;">TK_disconnect</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stop</td>
<td style="text-align: left;">Camera : TK_stop</td>
</tr>
<tr>
<td style="text-align: left;">Camera : sendIOCtrlToChannel: Type: Data: DataSize:</td>
<td style="text-align: left;">Camera : TK_sendIOCtrlToChannel: Type: Data: DataSize:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getServiceTypeOfChannel</td>
<td style="text-align: left;">Camera : TK_getServiceTypeOfChannel</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getConnectionStateOfChannel</td>
<td style="text-align: left;">Camera : TK_getConnectionStateOfChannel</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startShow: ScreenObject:</td>
<td style="text-align: left;">Camera : TK_startShow: ScreenObject:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : TK_setIsDecode: withChannel:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startRecvFrame: ScreenObject:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stopRecvFrame:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stopShow</td>
<td style="text-align: left;">Camera : TK_stopShow</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startSoundToPhone</td>
<td style="text-align: left;">Camera : TK_startSoundToPhone</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stopSoundToPhone</td>
<td style="text-align: left;">Camera : TK_stopSoundToPhone</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startSoundToDevice:</td>
<td style="text-align: left;">Camera : TK_startSoundToDevice</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startSoundToDevice: resend:</td>
<td style="text-align: left;">Camera : TK_startSoundToDevice: isResend: captureSize:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startSoundToDevice</td>
<td style="text-align: left;">Camera : TK_stopSoundToDevice</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startRecvAudio:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stopRecvAudio:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : initVideoGenerator:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : startRecordingForChannel: withDuration:</td>
<td style="text-align: left;">Camera : TK_startRecording: Channel:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : stopRecording</td>
<td style="text-align: left;">Camera : TK_stopRecording</td>
</tr>
<tr>
<td style="text-align: left;">Camera : getChannel: Snapshot: DataSize: ImageType: WithImageWidth: ImageHeight:</td>
<td style="text-align: left;">Camera : TK_getChannel: Snapshot: DataSize: ImageType: WithImageWidth: ImageHeight:</td>
</tr>
<tr>
<td style="text-align: left;">Camera : reStartShow: withCompleteBlock:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : camera: didReceiveFrameInfoWithChannel: videoWidth: VideoHeight: VideoFPS: VideoBPS: AudioBPS: OnlineNm: FrameCount: IncompleteFrameCount: </td>
<td style="text-align: left;">Camera : camera: didReceiveFrameInfoWithChannel: videoWidth: VideoHeight: VideoFPS: VideoBPS: AudioBPS: OnlineNm: FrameCount: IncompleteFrameCount: isHwDecode:</td>
</tr>
<tr>
<td style="text-align: left;">Camera :TK_setOutputFrameData: withChannel:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : reStartShow: withCompleteBlock:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : TK_startShowWithYUV: isSWDecode:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : TK_initVideoGenerator:</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : isListening</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : isRecording</td>
<td style="text-align: left;">丢弃</td>
</tr>
<tr>
<td style="text-align: left;">Camera : sendIOCtrlToChannel: Type: Data: DataSize:</td>
<td style="text-align: left;">Camera : TK_sendIOCtrlToChannel: Type: Data: DataSize:</td>
</tr>
</tbody>
</table>
<h1>2. 初始化(反初始化)API修改</h1>
<p>请使用Camera : TK_InitIOTCWithLiceseKey: privateKey: success: failure:进行SDK初始化。使用Camera :TK_uninitIOTC进行反初始化
具体修改如下:</p>
<ol>
<li>删除 Camera : TK_initIOTC: success: failure:</li>
<li>删除 Camera : uninitIOTC</li>
<li>删除 Camera : initIOTC</li>
</ol>
<h1>3. 连线API修改</h1>
<p>请使用Camera : TK_connect进行设备连线,使用Camera.TK_start进行AV通道的连线。
具体修改如下:</p>
<ol>
<li>修改参数,Camera : TK_start: ====> Camera :TK_start: viewPassword:</li>
<li>修改参数,TK_start: viewAccount: viewPassword: authType: is_playback: ====> Camera : TK_start: viewAccount: viewPassword: authType: ecurityMode:</li>
<li>删除Camera.TK_setDtls,若想使用Dtls方式进行连线,请使用Camera : TK_start: viewAccount: viewPassword: authType: ecurityMode:</li>
</ol>
<h1>4. 视频流API修改</h1>
<p>请使用TK_startShow(int avChannel)开启视频流。TK_start
若想获取视频数据,请使用Camera: MeidaDelegate代理方法。
具体修改如下:</p>
<ol>
<li>删除Camera : TK_startShowWithYUV,若想获取解码后的yuv数据,请使用TK_startShow: ScreenObject: isDecode: isSWDecode: isDropFrame: renderType:代替</li>
<li>删除Camera : TK_startRecvFrame/Camera : TK_stopRecvFrame,若想仅获取设备视频流,无需进行解码渲染,请使用TK_startShow: ScreenObject: isDecode: isSWDecode: isDropFrame: renderType:代替</li>
<li>新增获取视频格式接口 - (NSInteger)TK_getVideoCodecId:(NSInteger)channel;</li>
</ol>
<h1>5. 音频流API修改</h1>
<p>请使用TK_startSoundToPhone(int avChannel)开启音频流。与旧API相比,新API====> TK_startSoundToPhone: isDecodeAndPlay: 将isListening参数更改为isDecodeAndPlay。
若想获取音频数据,请使用Camera : MeidaDelegate代理方法。。
具体修改如下:</p>
<ol>
<li>修改参数,Camera.startSoundToPhone(int avChannel, boolean isListener) ====> Camera.startSoundToPhone(int avChannel, boolean isDecodeAndPlay),底层自动判断音频是否需要播放,isListener参数更改为isDecodeAndPlay,表示是否需要进行解码播放</li>
<li>删除Camera.TK_startRecvAudio/Camera.TK_stopRecvAudio。若想仅获取设备传过来的音频,无需进行解码播放,请使用Camera.startSoundToPhone(int avChannel, boolean isDecodeAndPlay)代替</li>
<li>新增获取监听音频格式接口 - (NSInteger)TK_getAudioOutputCodecId:(NSInteger)channel;</li>
<li>新增获取对讲音频格式接口 - (NSInteger)TK_getAudioInputCodecId:(NSInteger)channel;</li>
<li>更改API名称:TK_setSoundToDeviceFormatsChannel(原API: TK_setAudioSpeakFormatsChannel)</li>
<li>更改API名称:TK_getSoundToPhoneCodeId(原API: TK_getAudioOutputCodecId)</li>
<li>更改API名称:TK_getSoundToDeviceCodeId(原API: TK_setAudioInputCodecId)</li>
<li>移除API:TK_setAudioPlayTheWay,请使用TK_isAudioOutputavChannel替代</li>
<li>移除API:TK_setAudioOutput,请使用TK_isAudioOutputavChannel替代</li>
<li>基于TK_startShow新增参数isSendCommand</li>
</ol>
<h1>6. 截图API修改</h1>
<p>请使用Camera : TK_getSnapShotImageWithChannel 进行截图。
具体修改如下:</p>
<h1>7. 录像API修改</h1>
<p>请使用 Camera : TK_startRecording: Channel: 进行录像,底层不再限制录像时长,并自动判断是否需要录制音频。
具体修改如下:</p>
<ol>
<li>修改API Camera : startRecordingForChannel: withDuration: 改用 TK_startRecording: Channel:</li>
<li>删除Camera : TK_initVideoGenerator</li>
</ol>
<h1>8. 音视频数据接口修改</h1>
<p>新增Camera MediaDelegate 代理方法 来获取音视频数据,删除其它获取音视频数据的API。
删除代理方法如下:</p>
<ol>
<li>获取视频接收原始数据回调
<ul>
<li>(void)camera:(Camera *)camera didReceiveTimestamp:(unsigned int)frmTimestamp Channel:(NSInteger)channel; (丢弃)</li>
<li>(void)camera:(Camera <em>)camera didReceiveFrameDataInfo:(NSData </em>)frameData Channel:(NSInteger)channel; (丢弃)</li>
</ul></li>
<li>硬解码视频接收原始数据回调
<ul>
<li>(void)camera:(Camera *)camera didUpdateDecodedSampleBuffer: (CMSampleBufferRef)sampleBuffer timestamp:(uint64_t)timestamp Channel:(NSInteger)channel; (丢弃)</li>
<li>(void)CameraUpdateDecodedH264SampleBuffer: (CMSampleBufferRef)sampleBuffer; (丢弃)</li>
</ul></li>
</ol>
<h1>9. 新增P2P代理方法</h1>
<p>修改接口名称 ,修改接口中的参数,整理回调方法。具体修改如下:</p>
<ol>
<li>修改代理名称为P2PDelegate</li>
<li>修改回调参数,- (void)camera:(Camera *)camera didChangeSessionStatus:(NSInteger)status errorCode:(NSInteger)errorCode;</li>
<li>修改回调参数,- (void)camera:(Camera *)camera didChangeChannelStatus:(NSInteger)channel ChannelStatus:(NSInteger)status errorCode:(NSInteger)errorCode;</li>
<li>
<ul>
<li>(void)camera:(Camera *)camera didconnFailErrCode:(NSInteger)connFailErrCode; (丢弃)</li>
</ul>
</li>
<li>新增回调方法:- (void)camera:(Camera *)camera didRecvVideoChannel:(NSInteger)channel errorCode:(NSInteger)errorCode;</li>
<li>新增回调方法:- (void)camera:(Camera *)camera didRecvAudioChannel:(NSInteger)channel errorCode:(NSInteger)errorCode;</li>
<li>修改回调参数,- (void)camera:(Camera <em>)camera didReceiveIOCtrlWithType:(NSInteger)type Data:(const char</em>)data DataSize:(NSInteger)size Channel:(NSInteger)channel;</li>
</ol>