更新時間:2019-11-20
接口名稱 |
接口描述 |
---|---|
發(fā)起呼叫。 |
|
結(jié)束呼叫。 |
|
接聽呼叫。 |
|
二次撥號。 |
|
保持通話。 |
|
恢復(fù)通話。 |
接口名稱 |
接口描述 |
---|---|
設(shè)置視頻窗口。 |
|
設(shè)置視頻方向。 |
|
添加視頻。 |
|
刪除視頻。 |
|
響應(yīng)添加視頻請求。 |
|
視頻控制。 |
|
設(shè)置視頻窗口屬性。 |
|
設(shè)置攝像頭采集方向。 |
|
設(shè)置窗口顯示方向。 |
|
設(shè)置攝像頭圖片。 |
|
設(shè)置SVC視頻窗口參數(shù)。 |
|
獲取呼叫統(tǒng)計信息。 |
接口名稱 |
接口描述 |
---|---|
獲取設(shè)備列表。 |
|
打開本地預(yù)覽窗口。 |
|
關(guān)閉本地預(yù)覽窗口。 |
|
設(shè)置音頻路由設(shè)備。 |
|
獲取音頻路由設(shè)備。 |
接口名稱 |
接口描述 |
---|---|
開始播放音頻文件。 |
|
停止播放音頻文件。 |
接口描述
發(fā)起一路普通VOIP呼叫。
注意事項
呼叫ID作為一路通話的唯一標(biāo)示,UI應(yīng)保存并管理,以用于后繼的呼叫相關(guān)操作。
方法定義
TSDK_API TSDK_RESULT tsdk_start_call(OUT TSDK_UINT32 *call_id, IN const TSDK_CHAR* callee_number, IN TSDK_BOOL is_video);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[out] call_id |
是 |
TSDK_UINT32 * |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] callee_number |
是 |
const TSDK_CHAR* |
被叫號碼,最大有效長度255。 |
[in] is_video |
是 |
TSDK_BOOL |
是否發(fā)起視頻呼叫。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//oc -(unsigned int)startCallWithNumber:(NSString *)number type:(TUP_CALL_TYPE)callType { if (nil == number || number.length == 0) { return 0; } [self resetUCVideoOrientAndIndexWithCallId:0]; TSDK_BOOL isVideo = ((TSDK_CALL_E_CALL_TYPE)callType==CALL_VIDEO)?TSDK_TRUE:TSDK_FALSE; TSDK_UINT32 callid = 0; TSDK_RESULT ret = tsdk_start_call(&callid,(TSDK_CHAR*)[number UTF8String], isVideo); DDLogInfo(@"Call_Log: tsdk_start_call = %d", ret); if (ret == 0) { CallLogMessage *callLogMessage = [[CallLogMessage alloc]init]; callLogMessage.calleePhoneNumber = number; callLogMessage.durationTime = 0; callLogMessage.startTime = [self nowTimeString]; callLogMessage.callLogType = OutgointCall; callLogMessage.callId = callid; callLogMessage.isConnected = NO; NSMutableArray *array = [[NSMutableArray alloc]init]; if ([self loadLocalCallHistoryData].count > 0) { array = [self loadLocalCallHistoryData]; } [array addObject:callLogMessage]; [self writeToLocalFileWith:array]; } return callid; }
接口描述
結(jié)束和其他用戶的通話或者來電。通話雙方均可以主動結(jié)束呼叫。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_end_call(IN TSDK_UINT32 call_id);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)closeCall:(unsigned int)callId { TSDK_UINT32 callid = (TSDK_UINT32)callId; TSDK_RESULT ret = tsdk_end_call(callid); DDLogInfo(@"Call_Log: tsdk_end_call = %d, callid:%d",ret,callId); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
被叫方收到呼叫請求時,調(diào)用該接口接聽呼叫。
注意事項
若被叫方需要拒絕接聽呼叫,則需要調(diào)用tsdk_end_call()接口。
方法定義
TSDK_API TSDK_RESULT tsdk_accept_call(IN TSDK_UINT32 call_id, IN TSDK_BOOL is_video);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] is_video |
是 |
TSDK_BOOL |
是否接聽視頻呼叫。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (BOOL) answerComingCallType:(TUP_CALL_TYPE)callType callId:(unsigned int)callId { TSDK_RESULT ret = tsdk_accept_call((TSDK_UINT32)callId, callType == CALL_AUDIO ? TSDK_FALSE : TSDK_TRUE); DDLogInfo(@"Call_Log:answer call type is %d,result is %d, callid: %d",callType,ret,callId); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
一些業(yè)務(wù)場景中,用戶需要通過終端按鍵與網(wǎng)絡(luò)進(jìn)行交互,如充值、撥打總機后再撥打分機號碼、撥打客服中心號碼等。本接口用于在通話中發(fā)送二次撥號信息,每調(diào)用一次發(fā)送一次信號。
注意事項
方法定義
TSDK_API TSDK_RESULT tsdk_send_dtmf(IN TSDK_UINT32 call_id, IN TSDK_E_DTMF_TONE tone);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] tone |
是 |
DTMF鍵值。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (BOOL)sendDTMFWithDialNum:(NSString *)number callId:(unsigned int)callId { TSDK_E_DTMF_TONE dtmfTone = (TSDK_E_DTMF_TONE)[number intValue]; if ([number isEqualToString:@"*"]) { dtmfTone = TSDK_E_DTMF_STAR; } else if ([number isEqualToString:@"#"]) { dtmfTone = TSDK_E_DTMF_POUND; } TSDK_UINT32 callid = callId; TSDK_RESULT ret = tsdk_send_dtmf((TSDK_UINT32)callid,(TSDK_E_DTMF_TONE)dtmfTone); DDLogInfo(@"Call_Log: tsdk_send_dtmf = %@",(TSDK_SUCCESS == ret)?@"YES":@"NO"); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
保持通話。
注意事項
方法定義
TSDK_API TSDK_RESULT tsdk_hold_call(IN TSDK_UINT32 call_id);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)holdCallWithCallId:(unsigned int)callId { TSDK_RESULT ret = tsdk_hold_call(callId); DDLogInfo(@"Call_Log: tsdk_hold_call = %@",(TSDK_SUCCESS == ret)?@"YES":@"NO"); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
取消保持通話(恢復(fù)通話)。
注意事項
方法定義
TSDK_API TSDK_RESULT tsdk_unhold_call(IN TSDK_UINT32 call_id);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)unHoldCallWithCallId:(unsigned int)callId { TSDK_RESULT ret = tsdk_unhold_call(callId); DDLogInfo(@"Call_Log: tsdk_unhold_call = %@",(TSDK_SUCCESS == ret)?@"YES":@"NO"); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
用戶建立視頻呼叫時,調(diào)用本接口設(shè)置視頻窗口與呼叫的綁定關(guān)系。
如果用戶僅選擇音頻接聽,則無需調(diào)用此接口。
注意事項
呼叫存在時,callid填寫對應(yīng)的有效值;呼叫不存在(未建立,主叫呼出時),callid填寫非法值。
方法定義
TSDK_API TSDK_RESULT tsdk_set_video_window(IN TSDK_UINT32 call_id, IN TSDK_UINT32 count, IN const TSDK_S_VIDEO_WND_INFO *window);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] count |
是 |
TSDK_UINT32 |
窗口個數(shù),一般為2。 |
[in] window |
是 |
const TSDK_S_VIDEO_WND_INFO * |
視頻窗口信息。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (BOOL)updateVideoWindowWithLocal:(id)localVideoView andRemote:(id)remoteVideoView andBFCP:(id)bfcpVideoView callId:(unsigned int)callId { TSDK_S_VIDEO_WND_INFO videoInfo[3]; memset_s(videoInfo, sizeof(TSDK_S_VIDEO_WND_INFO) * 2, 0, sizeof(TSDK_S_VIDEO_WND_INFO) * 2); videoInfo[0].video_wnd_type = TSDK_E_VIDEO_WND_LOCAL; videoInfo[0].render = (TSDK_UPTR)localVideoView; videoInfo[0].display_mode = TSDK_E_VIDEO_WND_DISPLAY_FULL; videoInfo[1].video_wnd_type = TSDK_E_VIDEO_WND_REMOTE; videoInfo[1].render = (TSDK_UPTR)remoteVideoView; videoInfo[1].display_mode = TSDK_E_VIDEO_WND_DISPLAY_CUT; videoInfo[2].video_wnd_type = TSDK_E_VIDEO_WND_AUX_DATA; videoInfo[2].render = (TSDK_UPTR)bfcpVideoView; TSDK_RESULT ret; videoInfo[2].display_mode = TSDK_E_VIDEO_WND_DISPLAY_CUT; ret = tsdk_set_video_window((TSDK_UINT32)callId, 3, videoInfo); DDLogInfo(@"Call_Log: tsdk_set_video_window = %d",ret); [self updateVideoRenderInfoWithVideoIndex:CameraIndexFront withRenderType:TSDK_E_VIDEO_WND_LOCAL andCallId:callId]; [self updateVideoRenderInfoWithVideoIndex:CameraIndexFront withRenderType:TSDK_E_VIDEO_WND_REMOTE andCallId:callId]; return (TSDK_SUCCESS == ret); }
接口描述
設(shè)置移動視頻設(shè)備。
注意事項
用于移動設(shè)備。
方法定義
TSDK_API TSDK_RESULT tsdk_set_video_orient(IN TSDK_UINT32 call_id, IN TSDK_UINT32 index, IN TSDK_S_VIDEO_ORIENT *video_orient);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] index |
是 |
TSDK_UINT32 |
設(shè)備(攝像頭)索引。 |
[in] video_orient |
是 |
視頻方向(橫豎屏)參數(shù)。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (void)resetUCVideoOrientAndIndexWithCallId:(unsigned int)callid { TSDK_S_VIDEO_ORIENT orient; orient.choice = 1; orient.portrait = 0; orient.landscape = 0; orient.seascape = 1; tsdk_set_video_orient(callid, CameraIndexFront, &orient); }
接口描述
發(fā)起添加視頻(音頻轉(zhuǎn)視頻呼叫)請求。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_add_video(IN TSDK_UINT32 call_id);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)upgradeAudioToVideoCallWithCallId:(unsigned int)callId { TSDK_RESULT ret = tsdk_add_video((TSDK_UINT32)callId); DDLogInfo(@"Call_Log: tsdk_add_video = %d",ret); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
發(fā)起刪除視頻(視頻轉(zhuǎn)音頻呼叫)請求。
注意事項
前提條件:視頻通話已建立,主被叫正在通話中。
方法定義
TSDK_API TSDK_RESULT tsdk_del_video(IN TSDK_UINT32 call_id);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)downgradeVideoToAudioCallWithCallId:(unsigned int)callId { TSDK_RESULT ret = tsdk_del_video((TSDK_UINT32)callId); DDLogInfo(@"Call_Log: tsdk_del_video = %d",ret); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
對方請求音頻轉(zhuǎn)視頻呼叫時,本方選擇同意或者拒絕。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_reply_add_video(IN TSDK_UINT32 call_id, IN TSDK_BOOL is_accept);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] is_accept |
是 |
TSDK_BOOL |
是否同意音頻轉(zhuǎn)視頻呼叫的請求,取值:
|
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)replyAddVideoCallIsAccept:(BOOL)accept callId:(unsigned int)callId { TSDK_BOOL isAccept = accept; TSDK_RESULT ret = tsdk_reply_add_video((TSDK_UINT32)callId , isAccept); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
該接口用于控制暫?;蚶^續(xù)視頻采集。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_video_control(IN TSDK_UINT32 call_id, IN TSDK_S_VIDEO_CTRL_INFO *video_control);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] video_control |
是 |
視頻控制參數(shù)。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(void)videoControlWithCmd:(EN_VIDEO_OPERATION)control andModule:(EN_VIDEO_OPERATION_MODULE)module andIsSync:(BOOL)isSync callId:(unsigned int)callId { DDLogInfo(@"videoControlWithCmd :%d module: %d isSync:%d",control,module,isSync); TSDK_S_VIDEO_CTRL_INFO videoControlInfos; memset_s(&videoControlInfos, sizeof(TSDK_S_VIDEO_CTRL_INFO), 0, sizeof(TSDK_S_VIDEO_CTRL_INFO)); TSDK_UINT32 call_id = (TSDK_UINT32)callId; videoControlInfos.object = module; videoControlInfos.operation = control; videoControlInfos.is_sync = isSync; TSDK_RESULT ret = tsdk_video_control(call_id, &videoControlInfos); DDLogInfo(@"Call_Log: tsdk_video_control result= %@",(TSDK_SUCCESS == ret)?@"YES":@"NO"); }
接口描述
該接口用于設(shè)置視頻顯示窗口屬性。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_set_video_render(IN TSDK_UINT32 call_id, IN const TSDK_S_VIDEO_RENDER_INFO* video_render);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] video_render |
是 |
視頻顯示窗口屬性。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (void)updateVideoRenderInfoWithVideoIndex:(CameraIndex)index withRenderType:(TSDK_E_VIDEO_WND_TYPE)renderType andCallId:(unsigned int)callid { TSDK_UINT32 mirrorType = 0; TSDK_UINT32 displaytype = 0; //本端視頻,displaytype為1,鏡像模式根據(jù)前后攝像頭進(jìn)行設(shè)置 if (TSDK_E_VIDEO_WND_LOCAL == renderType) { //前置鏡像模式為2(左右鏡像),后置鏡像模式為0(不做鏡像) switch (index) { case CameraIndexBack: { mirrorType = 0; break; } case CameraIndexFront: { mirrorType = 2; break; } default: break; } displaytype = 2; } //遠(yuǎn)端視頻,鏡像模式為0(不做鏡像),顯示模式為0(拉伸模式) else if (TSDK_E_VIDEO_WND_REMOTE == renderType) { mirrorType = 0; displaytype = 1; } else { DDLogInfo(@"rendertype is not remote or local"); } TSDK_S_VIDEO_RENDER_INFO renderInfo; renderInfo.render_type = (TSDK_E_VIDEO_WND_TYPE)renderType; renderInfo.display_type = (TSDK_E_VIDEO_WND_DISPLAY_MODE)displaytype; renderInfo.mirror_type = (TSDK_E_VIDEO_WND_MIRROR_TYPE)mirrorType; TSDK_RESULT ret_video_render_info = tsdk_set_video_render(callid, &renderInfo); DDLogInfo(@"tsdk_set_video_render : %d", ret_video_render_info); }
接口描述
該接口用于設(shè)置攝像頭采集方向。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_set_capture_rotation(IN TSDK_UINT32 call_id, IN TSDK_UINT32 camera_index, IN TSDK_UINT32 capture_rotation);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] camera_index |
是 |
TSDK_UINT32 |
采集設(shè)備(攝像頭)索引。 |
[in] capture_rotation |
是 |
TSDK_UINT32 |
攝像頭采集角度 {0,1,2,3} 僅對移動平臺有效,默認(rèn)為0 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)rotationCameraCapture:(NSUInteger)ratation callId:(unsigned int)callId { TSDK_RESULT ret = tsdk_set_capture_rotation((TSDK_UINT32)callId , (TSDK_UINT32)_cameraCaptureIndex, (TSDK_UINT32)ratation); DDLogInfo(@"Call_Log: tsdk_set_capture_rotation = %d",ret); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
該接口用于設(shè)置窗口顯示方向。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_set_display_rotation(IN TSDK_UINT32 call_id, IN TSDK_E_VIDEO_WND_TYPE window_type, IN TSDK_UINT32 display_rotation);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] window_type |
是 |
視頻窗口類型。 |
|
[in] display_rotation |
是 |
TSDK_UINT32 |
窗口顯示角度 {0,1,2,3} 僅對移動平臺有效,默認(rèn)為0。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)rotationVideoDisplay:(NSUInteger)orientation callId:(unsigned int)callId { TSDK_RESULT ret_rotation = tsdk_set_display_rotation((TSDK_UINT32)callId, TSDK_E_VIDEO_WND_LOCAL, (TSDK_UINT32)orientation); DDLogInfo(@"tsdk_set_display_rotation : %d", ret_rotation); return (TSDK_SUCCESS == ret_rotation); return NO; }
接口描述
該接口用于設(shè)置攝像頭圖片。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_set_camera_picture(IN TSDK_UINT32 call_id, IN TSDK_CHAR *file_name);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫ID。 |
[in] file_name |
是 |
TSDK_CHAR * |
文件名,不超過1920*1200的BMP格式圖片。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)setVideoCaptureFileWithcallId:(unsigned int)callId { NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"tup_call_closeCramea_img" ofType:@"bmp"]; TSDK_RESULT ret = tsdk_set_camera_picture((TSDK_UINT32)callId, (TSDK_CHAR *)[imagePath UTF8String]); DDLogInfo(@"Call_Log: tsdk_set_camera_picture = %@",(TSDK_SUCCESS == ret)?@"YES":@"NO"); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
設(shè)置SVC會議視頻窗口信息。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_set_svc_video_window(IN TSDK_UINT32 call_id, IN TSDK_UINT32 count, IN const TSDK_S_SVC_VIDEO_WND_INFO *window); |
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[in] count |
是 |
TSDK_UINT32 |
SVC窗口個數(shù)。 |
[in] window |
是 |
const TSDK_S_SVC_VIDEO_WND_INFO * |
SVC視頻窗口信息。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功則返回TSDK_SUCCESS,失敗則返回相應(yīng)錯誤碼。 |
代碼示例
- (BOOL)setSvcVideoWindowWithFirstSVCView:(id)firstSVCView secondSVCView:(id)SecondSVCView thirdSVCView:(id)thirdSVCView remote:(id)remoteSVCView { TSDK_S_SVC_VIDEO_WND_INFO svcWindow[4]; memset_s(svcWindow, sizeof(TSDK_S_SVC_VIDEO_WND_INFO) * 4, 0, sizeof(TSDK_S_SVC_VIDEO_WND_INFO) * 4); svcWindow[0].render = (TSDK_UPTR)remoteSVCView; svcWindow[0].label = [self.currentJoinConfIndInfo.svcLable[0] intValue]; svcWindow[0].width = 960; svcWindow[0].height = 540; svcWindow[0].max_bandwidth = 1300; svcWindow[1].render = (TSDK_UPTR)firstSVCView; svcWindow[1].label = [self.currentJoinConfIndInfo.svcLable[1] intValue]; svcWindow[1].width = 160; svcWindow[1].height = 90; svcWindow[1].max_bandwidth = 100; svcWindow[2].render = (TSDK_UPTR)SecondSVCView; svcWindow[2].label = [self.currentJoinConfIndInfo.svcLable[2] intValue]; svcWindow[2].width = 160; svcWindow[2].height = 90; svcWindow[2].max_bandwidth = 100; svcWindow[3].render = (TSDK_UPTR)thirdSVCView; svcWindow[3].label = [self.currentJoinConfIndInfo.svcLable[3] intValue]; svcWindow[3].width = 160; svcWindow[3].height = 90; svcWindow[3].max_bandwidth = 100; TSDK_RESULT ret; ret = tsdk_set_svc_video_window((TSDK_UINT32)self.currentCallId, 4, svcWindow); [self updateVideoRenderInfoWithVideoIndex:CameraIndexFront withRenderType:TSDK_E_VIDEO_WND_LOCAL andCallId:self.currentCallId]; [self updateVideoRenderInfoWithVideoIndex:CameraIndexFront withRenderType:TSDK_E_VIDEO_WND_REMOTE andCallId:self.currentCallId]; return (TSDK_SUCCESS == ret); } |
接口描述
獲取呼叫統(tǒng)計信息。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_get_call_statistic_info(IN TSDK_UINT32 call_id, OUT TSDK_S_CALL_STATISTIC_INFO *statistic_info); |
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] call_id |
是 |
TSDK_UINT32 |
呼叫的ID,標(biāo)識唯一的呼叫。 |
[out] statistic_info |
是 |
呼叫統(tǒng)計信息。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功則返回TSDK_SUCCESS,失敗則返回相應(yīng)錯誤碼。 |
代碼示例
None
|
接口描述
獲取音頻視頻設(shè)備列表。
注意事項
應(yīng)用程序在任何階段均可以獲取當(dāng)前可用的音視頻設(shè)備信息,為更方便地進(jìn)行后繼具體設(shè)備管理,建議應(yīng)用程序在初始化階段和系統(tǒng)檢測到設(shè)備變化時,獲取設(shè)備信息并保存維護。
方法定義
TSDK_API TSDK_RESULT tsdk_get_devices(IN TSDK_E_DEVICE_TYPE device_type, IO TSDK_UINT32* num, OUT TSDK_S_DEVICE_INFO* device_info);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] device_type |
是 |
設(shè)備類型。
|
|
[in/out] num |
是 |
TSDK_UINT32 * |
輸入時表示上層分配的設(shè)備個數(shù),輸出時表示獲取到得設(shè)備的個數(shù)。 |
[out] device_info |
是 |
設(shè)備信息數(shù)組指針。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)obtainDeviceListWityType:(DEVICE_TYPE)deviceType { DDLogInfo(@"current device type: %d",deviceType); TSDK_UINT32 deviceNum = 0; TSDK_S_DEVICE_INFO *deviceInfo; TSDK_RESULT ret = tsdk_get_devices((TSDK_E_DEVICE_TYPE)deviceType, &deviceNum, deviceInfo); DDLogInfo(@"Call_Log: tsdk_get_devices = %#x,count:%d",ret,deviceNum); if (deviceNum>0) { DDLogInfo(@"again"); deviceInfo = new TSDK_S_DEVICE_INFO[deviceNum]; TSDK_RESULT rets = tsdk_get_devices((TSDK_E_DEVICE_TYPE)deviceType, &deviceNum, deviceInfo); DDLogInfo(@"Call_Log: tsdk_get_devices = %#x,count:%d",rets,deviceNum); for (int i = 0; i<deviceNum; i++) { DDLogInfo(@"Call_Log: ulIndex:%d,strName:%s,string:%@",deviceInfo[i].index,deviceInfo[i].device_name,[NSString stringWithUTF8String:deviceInfo[i].device_name]); } } delete [] deviceInfo; return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
打開本地預(yù)覽窗口。
注意事項
該接口一般用于設(shè)備設(shè)置時,檢測本地攝像頭工作狀態(tài)是否正常。
方法定義
TSDK_API TSDK_RESULT tsdk_open_video_preview( IN TSDK_UPTR handle, IN TSDK_UINT32 index )
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] handle |
是 |
TSDK_UPTR |
窗口句柄。 |
[in] index |
是 |
TSDK_UINT32 |
攝像頭索引。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC - (BOOL)videoPreview:(unsigned int)cameraIndex toView:(id) viewHandler { _videoPreview = viewHandler; TSDK_RESULT ret = tsdk_open_video_preview((TSDK_UPTR)viewHandler, (TSDK_UINT32)cameraIndex); DDLogInfo(@"Camera_Log:tsdk_open_video_preview result is %d", ret); return ret == TSDK_SUCCESS ? YES : NO; }
接口描述
關(guān)閉并刪除本地預(yù)覽窗口。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_close_video_preview( TSDK_VOID )
參數(shù)描述
無。
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(void)stopVideoPreview { tsdk_close_video_preview(); }
接口描述
設(shè)置移動音頻路由設(shè)備。
注意事項
用于移動設(shè)備。
方法定義
TSDK_API TSDK_RESULT tsdk_set_mobile_audio_route(IN TSDK_E_MOBILE_AUIDO_ROUTE route);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] route |
是 |
移動音頻路由設(shè)備類型。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)configAudioRoute:(ROUTE_TYPE)route { TSDK_E_MOBILE_AUIDO_ROUTE audioRoute = (TSDK_E_MOBILE_AUIDO_ROUTE)route; TSDK_RESULT result = tsdk_set_mobile_audio_route(audioRoute); DDLogInfo(@"tsdk_set_mobile_audio_route result is %@, audioRoute is :%d",result == TSDK_SUCCESS ? @"YES" : @"NO",audioRoute); return result == TSDK_SUCCESS ? YES : NO; }
接口描述
獲取移動音頻路由設(shè)備。
注意事項
用于移動設(shè)備。
方法定義
TSDK_API TSDK_RESULT tsdk_get_mobile_audio_route(OUT TSDK_E_MOBILE_AUIDO_ROUTE *route);
參數(shù)描述
參數(shù)名 |
是否必須 |
類型 |
描述 |
---|---|---|---|
[out] route |
是 |
移動音頻路由設(shè)備類型。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(ROUTE_TYPE)obtainMobileAudioRoute { TSDK_E_MOBILE_AUIDO_ROUTE route; TSDK_RESULT result = tsdk_get_mobile_audio_route(&route); DDLogInfo(@"tsdk_get_mobile_audio_route result is %d, audioRoute is :%d",result,route); return (ROUTE_TYPE)route; }
接口描述
播放本地音頻文件,包括振鈴音、回鈴音、撥號(提示)音、DTMF音、忙碌提示音和本地按鍵音等。
注意事項
WAV文件,目前支持PCMA、PCMU、G.729格式或采樣精度為8或16位、采樣率8k~48K的PCM數(shù)據(jù),支持雙聲道。
方法定義
TSDK_API TSDK_RESULT tsdk_start_play_media(IN TSDK_UINT32 loops, IN const TSDK_CHAR* play_file, OUT TSDK_INT32* play_handle);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] loops |
是 |
TSDK_UINT32 |
循環(huán)次數(shù),0表示循環(huán)播放。 |
[in] play_file |
是 |
const TSDK_CHAR * |
待播放的音頻文件,目前支持wav格式。 |
[out] play_handle |
是 |
TSDK_INT32 * |
播放句柄(用于停止播放時的參數(shù))。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)mediaStartPlayWithFile:(NSString *)filePath { if (_playHandle >= 0) { return NO; } TSDK_RESULT result = tsdk_start_play_media(0, (TSDK_CHAR *)[filePath UTF8String], &_playHandle); DDLogInfo(@"Call_Log: tsdk_start_play_media result= %xd , playhandle = %d",result,_playHandle); return result == TSDK_SUCCESS ? YES : NO; }
接口描述
停止音頻文件播放。
注意事項
無。
方法定義
TSDK_API TSDK_RESULT tsdk_stop_play_media(IN TSDK_INT32 play_handle);
參數(shù)描述
參數(shù) |
是否必須 |
類型 |
描述 |
---|---|---|---|
[in] play_handle |
是 |
TSDK_INT32 |
播放句柄。 |
返回值
類型 |
描述 |
---|---|
TSDK_RESULT |
成功返回TSDK_SUCCESS,失敗返回相應(yīng)錯誤碼。 |
代碼示例
//OC -(BOOL)mediaStopPlay { TSDK_RESULT result = tsdk_stop_play_media(_playHandle); _playHandle = -1; DDLogInfo(@"Call_Log: tsdk_stop_play_media result= %d",result); return result == TSDK_SUCCESS ? YES : NO; }