台湾一级a毛片在线播放,黄色精品偷拍视频大全,精品一区二区在线欧美日韩,日本特黄一级视频播三级片,日韩美女18岁美女视频,偷偷操不一样的99,国产午夜激无码av毛片久

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

主頁 > 服務(wù)與支持 > 開發(fā)平臺 > 客戶端SDK參考 > iOS Native SDK > 音視頻呼叫 設(shè)備管理

入門使用

設(shè)備管理

更新時間:2019-11-20

描述

管理音視頻設(shè)備,包括麥克風(fēng)、揚聲器和攝像頭。

業(yè)務(wù)流程

獲取音、視頻設(shè)備列表

說明: 

應(yīng)用程序在任何階段均可以獲取當(dāng)前可用的音視頻設(shè)備信息,為更方便地進(jìn)行后繼具體設(shè)備管理,建議應(yīng)用程序在初始化階段和系統(tǒng)檢測到設(shè)備變化時,獲取設(shè)備信息并保存維護(hù)。

  1. UI調(diào)用tsdk_get_devices()獲取音頻視頻設(shè)備列表。
    說明: 
    • 獲取麥克風(fēng)列表時,device_type值為TSDK_E_DEVICE_MIC。
    • 獲取揚聲器列表時,device_type值為TSDK_E_DEVICE_SPEAKER。
    • 獲取攝像頭列表時,device_type值為TSDK_E_DEVICE_CAMERA。

    代碼示例:

     
    -(BOOL)obtainDeviceListWityType:(DEVICE_TYPE)deviceType
    {     
        TSDK_UINT32 deviceNum = 0;   
        TSDK_S_DEVICE_INFO *deviceInfo = nullptr;    
        memset(deviceInfo, 0, sizeof(TSDK_S_DEVICE_INFO));    
        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;
    }
     

 

管理音頻設(shè)備

說明: 

一般用于用戶對音頻設(shè)備(麥克風(fēng)和揚聲器)進(jìn)行設(shè)置和切換。

  1. UI調(diào)用tsdk_set_mobile_audio_route()設(shè)置移動音頻路由設(shè)備。
    說明: 

    移動的音頻設(shè)備包括:藍(lán)牙、聽筒和耳機

    代碼示例:

    -(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;
    } 
     
  2. UI調(diào)用tsdk_get_mobile_audio_route()獲取移動音頻路由設(shè)備。

    代碼示例:

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

 

管理視頻設(shè)備

說明: 

一般用于用戶對攝像頭進(jìn)行設(shè)置和切換。

  1. UI調(diào)用tsdk_set_video_orient()設(shè)置當(dāng)前使用的攝像頭設(shè)備。

    代碼示例:

     
    -(BOOL)switchCameraIndex:(NSUInteger)cameraCaptureIndex callId:(unsigned int)callId
    {    
        TSDK_S_VIDEO_ORIENT orient;
        memset(&orient, 0, sizeof(TSDK_S_VIDEO_ORIENT));    
        orient.choice = 1;    
        orient.portrait = 0;    
        orient.landscape = 0;    
        orient.seascape = 1;    
        TSDK_RESULT result = tsdk_set_video_orient(callId, (TSDK_UINT32)cameraCaptureIndex, &orient);    
        if (result == TSDK_SUCCESS)    
        {        
            _cameraCaptureIndex = cameraCaptureIndex == 1 ? CameraIndexFront : CameraIndexBack;    
        }    
        [self updateVideoRenderInfoWithVideoIndex:(CameraIndex)cameraCaptureIndex withRenderType:TSDK_E_VIDEO_WND_LOCAL andCallId:callId];    
        return result == TSDK_SUCCESS ? YES : NO;
    }
     

 

預(yù)覽本地視頻

說明: 

一般用于設(shè)備設(shè)置時,檢測本地攝像頭工作狀態(tài)是否正常。

圖1 預(yù)覽本地視頻流程 
  1. UI先創(chuàng)建本地預(yù)覽窗口,再調(diào)用tsdk_open_video_preview()打開本地視頻預(yù)覽窗口,其中攝像頭索引填寫“獲取音、視頻設(shè)備列表”過程中獲取到的攝像頭索引。

    代碼示例:

     - (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;
    }
     
  2. UI調(diào)用tsdk_close_video_preview()關(guān)閉本地視頻預(yù)覽窗口,同時銷毀本地預(yù)覽窗口。

    代碼示例:

    -(void)stopVideoPreview
    {    
        tsdk_close_video_preview();
    }
     

 

注意事項

無。