arctos-SDK 程式開發arctos-SDK 程式開發
回到官網
Okuma視訊應用
arctos視訊協作
聯絡我們
  • English
  • 繁體中文
回到官網
Okuma視訊應用
arctos視訊協作
聯絡我們
  • English
  • 繁體中文
  • 指導

    • 起始
  • 規格

    • 點對點直連
    • 中繼伺服器
  • Api

    • 概述
    • 授權
    • 任務
    • 商業
    • 房間
  • 點對點直連

    • 概述
    • 安裝
    • 主要項目

      • 初始設定
      • 房間
      • 攝影機
        • 設定解析度
        • 獲取解析度
        • 啟用相機
        • 停用相機
        • 切換前後鏡頭
        • 鎖定相機鏡頭自動旋轉
        • 解除鎖定相機鏡頭自動旋轉
        • 啟用相機鏡頭變焦
        • 停用相機鏡頭變焦
        • 類型
          • 枚舉類別
      • 會議
      • 麥克風
      • 喇叭
      • 分享畫面
      • 繪圖板
      • 錄影
      • 圖層
  • 中繼伺服器

    • 概述
    • 安裝
    • 主要項目

      • 初始設定
      • 攝影機
      • 麥克風
      • 喇叭
      • 分享畫面
      • 繪圖板
      • 廣播訊息
      • 切換模板
      • 視訊濾鏡

相機

ArctosLinks.Media 提供了一套 API 來管理和控制相機鏡頭的各種操作。 這些功能包括啟用和關閉鏡頭、切換前後鏡頭、設定解析度、啟用和關閉鏡頭自動旋轉等。

設定解析度

功能:設定相機的解析度。

參數:

  • resolution: 欲設定的解析度,類型為Resolution。

返回值:設定後的解析度,如果設備無法使用欲設定的解析度,將會使用最接近的解析度,並顯示警告。若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
func setCameraResolution(to resolution: ArctosLinks.Media.Resolution = .FHD) {
    ArctosLinks.Media.setCameraResolution(to: resolution) { result in
        switch result {
        case .success(let resolution, let warning):
            dump(resolution, name: "CameraResolution")
            if let warning { 
                print(warning)
            }
        case .failure(let error):
            print(error.localizedDescription)
        }
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun setCameraResolution(cameraResolution: CameraResolution) {
    lifecycleScope.launch {
        runCatching {
            ArctosLinks.getInstance(Context).mediaManager.setCameraResolution(
                cameraResolution
            ).getOrThrow()
        }.onSuccess {
            Log.d(TAG, "set camera resolution : $it")                
        }.onFailure {
            Log.d(TAG, "set camera resolution: Failed ${it.message}")
        }
    }
}
c++
#include arctos_qt.h

void setCameraResolution(arctos::Resolution resolution) {
    auto& arctos_app = arctos::ArctosQt::getInstance();
    const auto result = arctos_app.media()->setCameraResolution(resolution);
    if (!result) {
        LOG(ERROR) << result.error();
    }
}

獲取解析度

功能:獲取當前相機解析度。

返回值:當前解析度。若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
func getCameraResolution() {
    ArctosLinks.Media.getCameraResolution { result in
        switch result {
        case .success(let resolution):
            dump(resolution)
        case .failure(let error):
            print(error.localizedDescription)
        }
    }
}

Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun getCameraResolution() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.getCameraResolution()
            .getOrThrow()
    }.onSuccess {
        Log.d(TAG, "getCameraResolution: $it")
    }.onFailure {
        Log.d(TAG, "getCameraResolution: Failed ${it.message}")
    }
}

c++
#include "arctos_qt.h"

arctos::Resolution getCameraResolution() {
    auto& arctos_app = arctos::ArctosQt::getInstance();
    const auto result = arctos_app.media()->cameraResolution();
    if (!result) {
        LOG(ERROR) << result.error();
    }
    return *result;
}

啟用相機

功能:啟用相機,顯示在畫面上。

返回值:如果成功啟用則完成,若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
import AVFoundation

func enableCamera() {
    guard AVCaptureDevice.authorizationStatus(for: .video) == .authorized else { return }

    do {
        try ArctosLinks.Media.enableCamera { result in
            switch result {
            case .success():
                print("Successfully enabled the camera.")
            case .failure(let error):
                print("Failed to enable the camera: \(error.localizedDescription).")
            }
        }
    } catch {
        print(error.localizedDescription)
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun enableCamera() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.enableCamera().getOrThrow()
    }.onFailure {
        Log.d(TAG, "enableCamera: Failed ${it.message}")
    }
}
c++
#include "arctos_qt.h"

void enableCamera() {
    auto& arctos_app = arctos::ArctosQt::getInstance();
    const auto result = arctos_app.media()->enableCamera();
    if (!result) {
        LOG(ERROR) << result.error();
    }
}

停用相機

功能:停用相機,畫面顯示黑色。

返回值:如果成功停用則完成,若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
func disableCamera() {
    ArctosLinks.Media.disableCamera()
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun disableCamera() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.disableCamera().getOrThrow()
    }.onFailure {
        Log.d(TAG, "disableCamera: Failed ${it.message}")
    }
}
c++
#include "arctos_qt.h"

void disableCamera() {
    auto& arctos_app = arctos::ArctosQt::getInstance();
    const auto result = arctos_app.media()->disableCamera();
    if (!result) {
        LOG(ERROR) << result.error();
    }
}

切換前後鏡頭

功能:在前後鏡頭之間進行切換。

返回值:如果成功切換則完成,若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
func switchLens() {
    do {
        try ArctosLinks.Media.switchLens()
    } catch {
        print(error.localizedDescription)
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun switchLens() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.switchLens().getOrThrow()
    }.onFailure {
        Log.d(TAG, "switchLens: Failed ${it.message}")
    }
}

鎖定相機鏡頭自動旋轉

功能:鎖定相機鏡頭自動旋轉功能,當鎖定後相機不會依裝置擺放橫向或直向而改變鏡頭輸出方向。

返回值:

Swift
import ArctosLinks
    
private func lockCameraAutoRotate() {
    ArctosLinks.Media.lockCameraAutoRotate { result in
        switch result {
        case .success():
            break
        case .failure(let error):
            print(error.localizedDescription)
        }
    }
}

Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun lockCameraAutoRotate() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.lockCameraAutoRotate()
            .getOrThrow()
    }.onFailure {
        Log.d(TAG, "lockCameraAutoRotate: Failed ${it.message}")
    }
}

解除鎖定相機鏡頭自動旋轉

功能:停用鎖定相機鏡頭自動旋轉功能。

返回值:

Swift
import ArctosLinks
    
private func unlockCameraAutoRotate() {
    ArctosLinks.Media.unlockCameraAutoRotate { result in
        switch result {
        case .success():
            break
        case .failure(let error):
            print(error.localizedDescription)
        }
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun unlockCameraAutoRotate() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.unlockCameraAutoRotate()
            .getOrThrow()
    }.onFailure {
        Log.d(TAG, "unlockCameraAutoRotate: Failed ${it.message}")
    }
}

啟用相機鏡頭變焦

功能:設定相機鏡頭拉近至2倍率。

返回值:如果成功設定則完成,若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
private func enableCameraZoomIn() {
    ArctosLinks.Media.enableCameraZoomIn { result in
        switch result {
        case .success():
            break
        case .failure(let error):
            displayNotification(title: "🚨 Process ERROR", body: error.localizedDescription)
        }
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun enableCameraZoomIn() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.enableCameraZoomIn()
            .getOrThrow()
    }.onFailure {
        Log.d(TAG, "enableCameraZoomIn: Failed ${it.message}")
    }
}

停用相機鏡頭變焦

功能:重置相機鏡頭至原倍率。

返回值:如果成功重置則完成,若是使用時發生例外狀況,則返回錯誤。

Swift
import ArctosLinks
    
private func disableCameraZoomIn() {
    ArctosLinks.Media.disableCameraZoomIn { result in
        switch result {
        case .success():
            break
        case .failure(let error):
            displayNotification(title: "🚨 Process ERROR", body: error.localizedDescription)
        }
    }
}
Kotlin
import com.arctos.sdk.links.core.application.ArctosLinks

private fun disableCameraZoomIn() {
    runCatching {
        ArctosLinks.getInstance(Context).mediaManager.disableCameraZoomIn()
            .getOrThrow()
    }.onFailure {
        Log.d(TAG, "disableCameraZoomIn: Failed ${it.message}")
    }
}

類型

枚舉類別

解析度 (Resolution)

功能:用於列舉變更解析度時,可以選擇的解析度。

成員:

  • FHD: 1080p,1920*1080。
  • HD: 720p ,1280*720。
  • VGA: 480p ,640*480。
Swift
/// The camera resolution
public enum Resolution : String, CaseIterable {
    case FHD
    case HD
    case VGA
}
Kotlin
enum class CameraResolution() {
    RESOLUTION_FULL_HD,
    RESOLUTION_HD,
    RESOLUTION_VGA
}
c++
enum class Resolution {
    kFHD,
    kHD,
    kVGA,
};

Prev
房間
Next
會議