暖暖视频免费观**,国产免费美女被艹视频,毛片一级毛片,不卡三级

智慧服務(wù),成就美好體驗 項目咨詢

主頁 > 服務(wù)與支持 > 開發(fā)平臺 > 客戶端SDK參考 > iOS Native SDK > 接口參考 音視頻呼叫

入門使用

音視頻呼叫

更新時間:2019-11-20

音頻呼叫

接口名稱

接口描述

tsdk_start_call

發(fā)起呼叫。

tsdk_end_call

結(jié)束呼叫。

tsdk_accept_call

接聽呼叫。

tsdk_send_dtmf

二次撥號。

tsdk_hold_call

保持通話。

tsdk_unhold_call

恢復(fù)通話。

視頻呼叫

接口名稱

接口描述

tsdk_set_video_window

設(shè)置視頻窗口。

tsdk_set_video_orient

設(shè)置視頻方向。

tsdk_add_video

添加視頻。

tsdk_del_video

刪除視頻。

tsdk_reply_add_video

響應(yīng)添加視頻請求。

tsdk_video_control

視頻控制。

tsdk_set_video_render

設(shè)置視頻窗口屬性。

tsdk_set_capture_rotation

設(shè)置攝像頭采集方向。

tsdk_set_display_rotation

設(shè)置窗口顯示方向。

tsdk_set_camera_picture

設(shè)置攝像頭圖片。

tsdk_set_svc_video_window

設(shè)置SVC視頻窗口參數(shù)。

tsdk_get_call_statistic_info

獲取呼叫統(tǒng)計信息。

設(shè)備管理

接口名稱

接口描述

tsdk_get_devices

獲取設(shè)備列表。

tsdk_open_video_preview

打開本地預(yù)覽窗口。

tsdk_close_video_preview

關(guān)閉本地預(yù)覽窗口。

tsdk_set_mobile_audio_route

設(shè)置音頻路由設(shè)備。

tsdk_get_mobile_audio_route

獲取音頻路由設(shè)備。

媒體

接口名稱

接口描述

tsdk_start_play_media

開始播放音頻文件。

tsdk_stop_play_media

停止播放音頻文件。

tsdk_start_call

接口描述

發(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;
}
 

tsdk_end_call

接口描述

結(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;
}
 

tsdk_accept_call

接口描述

被叫方收到呼叫請求時,調(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;
}
 

tsdk_send_dtmf

接口描述

一些業(yè)務(wù)場景中,用戶需要通過終端按鍵與網(wǎng)絡(luò)進(jìn)行交互,如充值、撥打總機后再撥打分機號碼、撥打客服中心號碼等。本接口用于在通話中發(fā)送二次撥號信息,每調(diào)用一次發(fā)送一次信號。

注意事項

  • 處于通話中才可以發(fā)送二次撥號信息。
  • TSDK不提供DTMF按鍵音功能。為了實現(xiàn)更友好的最終用戶體驗,UI應(yīng)同步調(diào)用SDK提供的媒體播放接口或系統(tǒng)提供的播放接口,實現(xiàn)播放DTMF按鍵音。

方法定義

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

TSDK_E_DTMF_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_hold_call

接口描述

保持通話。

注意事項

  • 處于通話中才可以調(diào)用該接口。
  • 視頻通話被保持時,視頻將會自動被關(guān)閉,恢復(fù)時,視頻將會自動打開。

方法定義

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;
}
 

tsdk_unhold_call

接口描述

取消保持通話(恢復(fù)通話)。

注意事項

  • 處于通話保持狀態(tài)才可以調(diào)用該接口。
  • 因通話雙方均可以在本端處于通話態(tài)發(fā)起保持操作,即通話可能會處于雙向保持態(tài),在任一保持方發(fā)起恢復(fù)通話時,僅能恢復(fù)本端通話狀態(tài),不會恢復(fù)對端的通話狀態(tài)。
  • 視頻通話雙向保持狀態(tài)中,任一方先恢復(fù)通話,不會自動打開視頻;雙方均恢復(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;
}
 

tsdk_set_video_window

接口描述

用戶建立視頻呼叫時,調(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);
}
 

tsdk_set_video_orient

接口描述

設(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

TSDK_S_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);
}
 

tsdk_add_video

接口描述

發(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;
}
 

tsdk_del_video

接口描述

發(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;
}
 

tsdk_reply_add_video

接口描述

對方請求音頻轉(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)視頻呼叫的請求,取值:

  • true:同意
  • false:拒絕

返回值

類型

描述

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;
}
 

tsdk_video_control

接口描述

該接口用于控制暫?;蚶^續(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

TSDK_S_VIDEO_CTRL_INFO*

視頻控制參數(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");
}
 

tsdk_set_video_render

接口描述

該接口用于設(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_S_VIDEO_RENDER_INFO*

視頻顯示窗口屬性。

返回值

類型

描述

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);
}
 

tsdk_set_capture_rotation

接口描述

該接口用于設(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;
}
 

tsdk_set_display_rotation

接口描述

該接口用于設(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

TSDK_E_VIDEO_WND_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;
}
 

tsdk_set_camera_picture

接口描述

該接口用于設(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;
}
 

tsdk_set_svc_video_window

接口描述

設(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);
}
 

tsdk_get_call_statistic_info

接口描述

獲取呼叫統(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

TSDK_S_CALL_STATISTIC_INFO

呼叫統(tǒng)計信息。

返回值

類型

描述

TSDK_RESULT

成功則返回TSDK_SUCCESS,失敗則返回相應(yīng)錯誤碼。

代碼示例

None
 

tsdk_get_devices

接口描述

獲取音頻視頻設(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

TSDK_E_DEVICE_TYPE

設(shè)備類型。

  • TSDK_E_DEVICE_MIC:獲取麥克風(fēng)列表
  • TSDK_E_DEVICE_SPEAKER:獲取揚聲器列表
  • TSDK_E_DEVICE_CAMERA:獲取攝像頭列表

[in/out] num

TSDK_UINT32 *

輸入時表示上層分配的設(shè)備個數(shù),輸出時表示獲取到得設(shè)備的個數(shù)。

[out] device_info

TSDK_S_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;
}
 

tsdk_open_video_preview

接口描述

打開本地預(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;
}
 

tsdk_close_video_preview

接口描述

關(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();
}
 

tsdk_set_mobile_audio_route

接口描述

設(shè)置移動音頻路由設(shè)備。

注意事項

用于移動設(shè)備。

方法定義

TSDK_API TSDK_RESULT tsdk_set_mobile_audio_route(IN TSDK_E_MOBILE_AUIDO_ROUTE route);
 

參數(shù)描述

參數(shù)名

是否必須

類型

描述

[in] route

TSDK_E_MOBILE_AUIDO_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;
}
 

tsdk_get_mobile_audio_route

接口描述

獲取移動音頻路由設(shè)備。

注意事項

用于移動設(shè)備。

方法定義

TSDK_API TSDK_RESULT tsdk_get_mobile_audio_route(OUT TSDK_E_MOBILE_AUIDO_ROUTE *route);
 

參數(shù)描述

參數(shù)名

是否必須

類型

描述

[out] route

TSDK_E_MOBILE_AUIDO_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;
}
 

tsdk_start_play_media

接口描述

播放本地音頻文件,包括振鈴音、回鈴音、撥號(提示)音、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_stop_play_media

接口描述

停止音頻文件播放。

注意事項

無。

方法定義

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;
}