Android旧API升级至新API
<p>[TOC]</p>
<h1>一、旧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.registerIOTCListener</td>
<td style="text-align: left;">Camera.TK_registerIOTCListener</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getIOTCamerVersion</td>
<td style="text-align: left;">Camera.TK_getIOTCameraVersion</td>
</tr>
<tr>
<td style="text-align: left;">Camera.SearchLAN</td>
<td style="text-align: left;">Camera.TK_LanSearch</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</td>
<td style="text-align: left;">Camera.TK_start</td>
</tr>
<tr>
<td style="text-align: left;">Camera.disconnect</td>
<td style="text-align: left;">Camera.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.isSessionConnected</td>
<td style="text-align: left;">Camera.TK_isSessionConnected</td>
</tr>
<tr>
<td style="text-align: left;">Camera.isChannelConnected</td>
<td style="text-align: left;">Camera.TK_isChannelConnected</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startShow</td>
<td style="text-align: left;">Camera.TK_startShow</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startShowWithYUV</td>
<td style="text-align: left;">Camera.TK_startShow</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startShowWithRGB</td>
<td style="text-align: left;">Camera.TK_startShow</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.getVideoCodecId</td>
<td style="text-align: left;">Camera.TK_getVideoCodecId</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startSpeaking</td>
<td style="text-align: left;">Camera.TK_startSoundToDevice</td>
</tr>
<tr>
<td style="text-align: left;">Camera.stopSpeaking</td>
<td style="text-align: left;">Camera.TK_stopSoundToDevice</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startListening</td>
<td style="text-align: left;">Camera.TK_startSoundToPhone</td>
</tr>
<tr>
<td style="text-align: left;">Camera.stopListening</td>
<td style="text-align: left;">Camera.TK_stopSoundToPhone</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startAcousticEchoCanceler</td>
<td style="text-align: left;">Camera.TK_startAcousticEchoCanceler</td>
</tr>
<tr>
<td style="text-align: left;">Camera.stopAcousticEchoCanceler</td>
<td style="text-align: left;">Camera.TK_stopAcousticEchoCanceler</td>
</tr>
<tr>
<td style="text-align: left;">Camera.setAudioInputCodecId</td>
<td style="text-align: left;">Camera.TK_setAudioInputCodecId</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getAudioInputCodecId</td>
<td style="text-align: left;">Camera.TK_getAudioInputCodecId</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getAudioOutputCodecId</td>
<td style="text-align: left;">Camera.TK_getAudioOutputCodecId</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startRecording</td>
<td style="text-align: left;">Camera.TK_startRecording</td>
</tr>
<tr>
<td style="text-align: left;">Camera.startRecordingWithoutAudio</td>
<td style="text-align: left;">Camera.TK_startRecording</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.sendIOCtrl</td>
<td style="text-align: left;">Camera.TK_sendIOCtrlToChannel</td>
</tr>
<tr>
<td style="text-align: left;">Camera.removeAllCmd</td>
<td style="text-align: left;">Camera.TK_removeAllCmd</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getAVChannelCount</td>
<td style="text-align: left;">Camera.TK_getAVChannelCount</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getChannelServiceType</td>
<td style="text-align: left;">Camera.TK_getServiceTypeOfChannel</td>
</tr>
<tr>
<td style="text-align: left;">Camera.getMSID</td>
<td style="text-align: left;">Camera.getSID</td>
</tr>
<tr>
<td style="text-align: left;">Camera.TK_playAecAudio</td>
<td style="text-align: left;">Camera.TK_playAudio</td>
</tr>
<tr>
<td style="text-align: left;">Camera.TK_sendAecAudio</td>
<td style="text-align: left;">Camera.TK_sendAudio</td>
</tr>
<tr>
<td style="text-align: left;">Camera.TK_isAudioOutput</td>
<td style="text-align: left;">Camera.TK_setAudioOutput</td>
</tr>
</tbody>
</table>
<h1>二、初始化API修改</h1>
<p>请使用TK_initIOTC(Context context, String privateKey, String sdkLicenseKey, TK_Listener listener)进行sdk的初始化,请使用TK_unInitIOTC()进行sdk的反初始化。
删除了其它初始化api,具体修改如下:</p>
<ol>
<li>删除init(Context context)</li>
<li>删除init(Context context, String company)</li>
<li>删除TK_initIOTC()</li>
<li>删除TK_initIOTC(String company)</li>
<li>删除TK_initIOTC(Context context, String privateKey, TK_Listener listener)</li>
<li>删除TK_initIOTCWithLicenseKey(Context context, String privateKey, String sdkLicensekey, TK_Listener listener)</li>
<li>删除TK_initIOTC(String company)</li>
<li>删除uninit()</li>
</ol>
<h1>三、连线API修改</h1>
<p>请使用Camera.TK_connect进行设备连线,使用Camera.TK_start进行AV通道的连线。与旧API相比,新API修改参数,单独连线仅需UID,开通道才需要password。
具体修改如下:</p>
<ol>
<li>修改参数,Camera.TK_connect(String uid, String viewAccount, String viewPasswd) ====> Camera.TK_connect(String uid) 或者 Camera.TK_connect(String uid, String authKey)</li>
<li>修改参数,Camera.TK_start(int avChannel) ====> Camera.TK_start(int avChannel, String password)</li>
<li>修改参数,Camera.TK_start(int avChannel, int authType) ====> Camera.TK_start(int avChannel, String password, String account, Camera.AuthType type, Camera.SecurityMode mode)</li>
<li>删除Camera.TK_setDtls,若想使用Dtls方式进行连线,请使用Camera.TK_start(int avChannel, String password, String account, Camera.AuthType type, Camera.SecurityMode mode)</li>
</ol>
<h1>四、视频流API修改</h1>
<p>请使用TK_startShow(int avChannel)开启视频流。
若想获取视频数据,请使用Camera.TK_registerMediaDataListener。
具体修改如下:</p>
<ol>
<li>删除Camera.TK_startShowWithYUV,若想获取解码后的yuv数据,请使用TK_startShow(int avChannel, boolean runSoftwareDecode, boolean isDropFrame, boolean isRender, Camera.RenderType type)代替</li>
<li>删除Camera.TK_startShowWithRGB,若想获取解码后的rgb数据,请使用TK_startShow(int avChannel, boolean runSoftwareDecode, boolean isDropFrame, boolean isRender, Camera.RenderType type)代替</li>
<li>删除Camera.TK_startRecvFrame/Camera.TK_stopRecvFrame,若想仅获取设备视频流,无需进行解码渲染,请使用TK_startShow(int avChannel, boolean runSoftwareDecode, boolean isDropFrame, boolean isRender, Camera.RenderType type)代替</li>
</ol>
<h1>五、音频流API修改</h1>
<p>请使用TK_startSoundToPhone(int avChannel)开启音频流。与旧API相比,新API将isListener参数更改为isDecodeAndPlay。
若想获取音频数据,请使用Camera.TK_registerMediaDataListener。
具体修改如下:</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>
</ol>
<h1>六、截图API修改</h1>
<p>请使用Camera.TK_snapshot(int channel, String filePath, long bitmapPixels)进行截图。
具体修改如下:</p>
<ol>
<li>删除Camera.setSnapshot/Camera.SetCameraListener</li>
<li>删除Camera.TK_setSnapshot/Camera.TK_setCameraListener</li>
<li>删除Camera.TK_snapshotByCurrentBitmap</li>
</ol>
<h1>七、录像API修改</h1>
<p>请使用 Camera.TK_startRecording(int channel, String path)进行录像,底层不再限制录像时长,并自动判断是否需要录制音频。
具体修改如下:</p>
<ol>
<li>删除Camera.TK_startRecordingForChannel</li>
<li>删除Camera.TK_startRecordingWithoutAudio</li>
</ol>
<h1>八、播放器修改</h1>
<p>请使用软/硬解码请统一使用com.tutk.IOTC.VideoMonitor,旧播放器将被删除。
使用TK_setMonitorListener来获取播放器的事件回调。
具体修改如下:</p>
<ol>
<li>删除com.tutk.IOTC.Monitor</li>
<li>删除com.tutk.IOTC.MediaCodecMonitor</li>
<li>删除com.tutk.IOTC.MediaCodecMonitor_MPEG4</li>
<li>删除com.tutk.IOTC.NewMediaCodecMonitor</li>
</ol>
<h1>九、音视频数据接口修改</h1>
<p>新增Camera.TK_registerMediaDataListener/Camera.TK_unregisterMediaDataListener来获取音视频数据,删除其它获取音视频数据的Api。
删除API如下:</p>
<ol>
<li>
<p>获取视频接收原始数据回调
Camera.TK_registerVideoDataListeners/Camera.TK_unregisterVideoDataListeners</p>
</li>
<li>
<p>获取视频接收原始数据回调
Camera.registerVideoDataListeners/Camera.unregisterVideoDataListeners</p>
</li>
<li>
<p>获取音频接收原始数据回调
Camera.TK_registerAudioListener/Camera.TK_unregisterAudioListener</p>
</li>
<li>
<p>获取音频接收原始数据回调
Camera.registerAudioListener/Camera.unregisterAudioListener</p>
</li>
<li>
<p>硬解码视频接收原始数据回调
Camera.TK_registerFrameInfoListener/Camera.TK_unRegisterFrameInfoListener
Camera.registerFrameInfoListener/Camera.unRegisterFrameInfoListener</p>
</li>
<li>
<p>视频解码信息回调
Camera.setOnDecodeListener
Camera.TK_setOnDecodeListener</p>
</li>
<li>
<p>YUV数据获取
Camera.TK_registerYuvListener/Camera.TK_unRegisterYuvListener</p>
</li>
<li>
<p>RGB数据获取
Camera.TK_registerRgbListener/Camera.TK_unRegisterRgbListener</p>
</li>
<li>
<p>软/硬解码数据回调
InterfaceCtrl.IRegisterIOTCListener.receiveFrameData
InterfaceCtrl.IRegisterIOTCListener.receiveFrameDataForMediaCodec
InterfaceCtrl.IOTCListener.receiveFrameData
InterfaceCtrl.IOTCListener.receiveFrameDataForMediaCodec</p>
</li>
<li>视频帧率(fps)、比特率(bps)等调试信息回调
InterfaceCtrl.IRegisterIOTCListener.receiveFrameInfo
InterfaceCtrl.IOTCListener.receiveFrameInfo</li>
</ol>
<h1>十、IOTC回调接口修改</h1>
<blockquote>
<p>原IRegisterIOTCListener,现IOTCListener</p>
</blockquote>
<p>修改接口名称,修改接口中的参数,删除debug回调。具体修改如下:</p>
<ol>
<li>修改名称,IRegisterIOTCListener ====> 修改为 IOTCListener</li>
<li>修改名称,SimpleIRegisterIOTCListener ====> 修改为 SimpleIOTCListener</li>
<li>修改回调参数,receiveSessionInfo(Camera camera, int resultCode) ====> receiveSessionInfo(Camera camera, int resultCode, int p2pCode)</li>
<li>修改回调参数,receiveChannelInfo(Camera camera, int avChannel, int resultCode) ====> receiveChannelInfo(Camera camera, int avChannel, int resultCode, int p2pCode)</li>
<li>删除debugSessionInfo,请使用receiveSessionInfo代替</li>
<li>删除debugChannelInfo,请使用receiveChannelInfo代替</li>
<li>修改回调名称, receiveIOCtrlData ====> sendIOCtrlData, 更能符合API意义</li>
<li>修改回调名称, receiveJsonIOCtrlData ====> sendJsonIOCtrlData, 更能符合API意义</li>
<li>修改回调名称, retStartListen ====> receiveSoundToPhone, 更能符合API意义</li>
<li>修改回调名称, retStartChannel ====> receiveSoundToDevice, 更能符合API意义</li>
</ol>