日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Windows

RTC SDK為您提供音視頻設備測試的方法,您可以在音視頻通話前檢查當前設備上的攝像頭,麥克風以及揚聲器等音視頻設備是否正常工作,以保證音視頻通話質量。通過閱讀本文,您可以了解音視頻設備測試的方法。

攝像頭測試

  1. 創建SDK實例后,應用層可以調用接口getCameraList,獲取當前設備上所有可用攝像頭,返回設備列表中將同時返回設備ID及設備名稱,應用層可選擇通過設備名稱或設備ID進行判斷,并通過接口SetCurrentCameraNameSetCurrentCameraID選中需要測試的設備。

    AliRtcEngine *pEngine = AliRtcEngine::Create("");
    IAliEngineAudioDeviceManager* videoDeviceManager = nullptr;
    pEngine->pInterface(AliEngineInterfaceVideoDeviceManger, &videoDeviceManager);
    
    AliEngineDeviceInfoList cameraList = videoDeviceManager->getCameraList();
    
    #if defined(USE_DEVIC_NAME)
    // 可以通過遍歷所有攝像頭設備名,查找并設置需要測試的設備
    std::string matchDeviceName = /*測試設備名*/;
    for (size_t i = 0; i != cameraList.deviceNames.size(); ++i)
    {
        AliRtc::String deviceName = cameraList.deviceNames.at(i);
        if(std::string(deviceName.c_str()) == matchDeviceName)
        {
            // 設置測試設備
            videoDeviceManager->SetCurrentCameraName(deviceName);
        }
    }
    #else
    // 可以通過遍歷所有攝像頭設備ID并查找需要測試的設備
    std::string matchDeviceId = /*測試設備ID*/;
    for (size_t i = 0; i != cameraList.deviceIds.size(); ++i)
    {
        AliRtc::String deviceId = cameraList.deviceIds.at(i);
        if(std::string(deviceId.c_str()) == matchDeviceId)
        {
            // 設置測試設備
            videoDeviceManager->SetCurrentCameraID(deviceId);
        }
    }
    #endif
  2. 設置測試攝像頭設備之后,通過setLocalViewConfig接口可以設置預覽顯示窗口,然后啟動預覽,即可通過預覽畫面是否正常顯示,判斷當前攝像頭設備是否正常工作。

    // 設置預覽窗口
    AliVideoCanvas canvas;
    canvas.displayView = /*預覽顯示窗口句柄*/;
    pEngine->setLocalViewConfig(canvas, AliEngineVideoTrackCamera);
    
    // 開啟預覽檢查,確認顯示是否正常
    pEngine->startPreview();

麥克風測試

  1. 創建SDK實例后,應用層需要繼承RtcEngineEventListener接口,實現OnRecordingDeviceAudioLevel回調,用于接收麥克風測試時返回的音量值。再通過SDK接口SetEngineEventListener創建設備測試實例,并在創建時傳入回調監聽實例。

    // 繼承實現設備測試事件回調
    class EventListener : public RtcEngineEventListener {
      void OnRecordingDeviceAudioLevel(int level) {
        // 處理麥克風測試音量回調
      } override;
    }
    
    // 創建SDK實例及設備測試實例
    RtcEngine *pEngine = RtcEngine::Create("");
    EventListener *listener = new EventListener();
    pEngine->SetEngineEventListener(listener);
  2. 開始測試前,通過接口GetRecordingDeviceList獲取當前設備上所有可用麥克風設備,返回設備列表中將同時返回設備ID及設備名稱,應用層可選擇通過設備名或設備ID判斷并選擇需要測試的設備。

    RtcEngineAudioDeviceManager* audioDeviceManager = nullptr;
    audioDeviceManager = pEngine->GetAudioDeviceManager();
    RtcEngineDeviceInfoList* audioCaptureList = audioDeviceManager->GetRecordingDeviceList();
    
    // 可以通過遍歷所有麥克風設備ID,查找需要測試的設備
    std::string matchDeviceId = /*測試設備ID*/;
    for (size_t i = 0; i != audioCaptureList->GetCount(); ++i)
    {
        RtcEngineDeviceInfo info = audioCaptureList->GetDeviceInfo((uint32_t)i);
        if(info.deviceID.c_str() == matchDeviceId)
        {
            // 設置測試設備
            audioDeviceManager->SetCurrentRecordingDeviceId(info.deviceID.c_str());
        }
    }
  3. 選中測試設備后,調用麥克風測試接口啟動測試,接口中需要指明測試設備名稱或者設備ID,以及音量回調頻率(傳入0為默認頻率,每20ms回調一次音量)。測試開始后,提示您對麥克風設備說話,并將OnRecordingDeviceAudioLevel回調中返回的采集音量值進行展示,判斷當前麥克風設備是否正常工作。

    // 啟動麥克風設備測試
    audioDeviceManager->StartRecordingDeviceTest();
  4. 測試完成后,調用接口StopRecordingDeviceTest停止麥克風測試,并釋放設備測試功能實例。

    audioDeviceManager->StopRecordingDeviceTest();

揚聲器測試

  1. 創建SDK引擎實例后,應用層需要繼承RtcEngineEventListener接口,實現OnPlayoutDeviceAudioLevel回調,用于接收揚聲器測試時返回的音量值。然后通過SDK接口SetEngineEventListener創建設備測試實例,并在創建時傳入回調監聽實例。

    // 繼承實現設備測試事件回調
    class EventListener : public RtcEngineEventListener {
      void OnPlayoutDeviceAudioLevel(int level) {
        // 處理揚聲器測試音量回調
      } override;
    }
    
    // 創建SDK實例及設備測試實例
    RtcEngine *pEngine = RtcEngine::Create("");
    EventListener *listener = new EventListener();
    pEngine->SetEngineEventListener(listener);
  2. 開始測試前,通過接口GetPlayoutDeviceList獲取當前設備上所有可用揚聲器,返回設備列表中將同時返回設備 ID 及設備名稱,應用層可選擇通過設備名或設備 ID 判斷并選中需要測試的設備。

    RtcEngineAudioDeviceManager* audioDeviceManager = nullptr;
    audioDeviceManager = pEngine->GetAudioDeviceManager();
    RtcEngineDeviceInfoList* audioRenderList = audioDeviceManager->GetPlayoutDeviceList();
    
    // 可以通過遍歷所有播放設備ID,查找需要測試的設備
    std::string matchDeviceId = /*測試設備ID*/;
    for (size_t i = 0; i != audioRenderList->GetCount(); ++i)
    {
        RtcEngineDeviceInfo info = audioRenderList->GetDeviceInfo((uint32_t)i);
        if(info.deviceID.c_str() == matchDeviceId)
        {
            // 設置測試設備
            audioDeviceManager->SetCurrentPlayoutDeviceId(info.deviceID.c_str());
        }
    }
    
  3. 選中測試設備后,調用揚聲器測試接口啟動測試,接口中需要指明測試設備名稱或設備 ID,音量回調頻率(傳入0為默認頻率,每20ms回調一次音量),以及測試使用的音頻文件路徑。開始測試后,可以將OnPlayoutDeviceAudioLevel回調中返回的采集音量值進行展示,同時關注揚聲器中播放的測試音頻,判斷當前揚聲器設備是否正常工作。

    // 啟動播放設備測試
    audioDeviceManager->StartPlayoutDeviceTest(wavPath.c_str(), 1, 48000);
    
    說明 目前揚聲器測試播放文件只支持Wave格式,傳入路徑需要為絕對路徑,并保證可以被讀取訪問。
  4. 測試完成或接收到文件播放結束事件回調后,調用StopPlayoutDeviceTest接口停止麥克風測試,并釋放設備測試功能實例。

    audioDeviceManager->StopPlayoutDeviceTest();