73.1.1

Camera Initialization

To initialize the camera, import the TruvideoSdkCamera module into the controller first. Next, customize the camera settings by utilizing TruvideoSdkCameraConfiguration with appropriate parameters to tailor it to your specific requirements.

Once the configuration is complete, proceed to display the camera view for capturing photos and clips.

import TruvideoSdkCamera

 /**
     Initiates the camera functionality with specified parameters and presents the camera view.
     - Parameters:
        - viewController: The UIViewController where the camera view will be presented.
        - completion: A closure to handle the camera result upon completion.
            - cameraResult: The result of the camera operation.
     */
    func cameraInitiate(viewController: UIViewController, _ completion: @escaping (_ cameraResult: TruvideoSdkCameraResult) -> Void) {
        DispatchQueue.main.async {
            // Retrieving information about the device's camera functionality.
            let cameraInfo: TruvideoSdkCameraInformation = TruvideoSdkCamera.camera.getTruvideoSdkCameraInformation()
            
            // Configuring the camera with various parameters based on specific requirements.
            // - Parameter outputPath: Specifies the path for storing the captured data upon completion.
            // Additional parameters can be adjusted to customize camera behavior as needed.
            let configuration = TruvideoSdkCameraConfiguration(
                lensFacing: .back,
                flashMode: .off,
                orientation: nil,
                outputPath: "",
                frontResolutions: [],
                frontResolution: nil,
                backResolutions: [],
                backResolution: nil,
                mode: .videoAndPicture
            )
            
            DispatchQueue.main.async {
                viewController.presentTruvideoSdkCameraView(
                    preset: configuration,
                    onComplete: { cameraResult in
                        // Handling completion of camera
                    }
                )
            }
        }
    }

Augmented Reality (AR) [BETA]

Introducing the beta version of Augmented Reality (AR) functionality within the TruvideoSDK! This feature brings the power of augmented reality directly into your app, offering users an immersive and interactive experience like never before. To activate this feature, simply call the presentTruvideoSdkAugmentedRealityCameraView method from any UIViewController instance in your app.

Once invoked, users will be transported into the AR camera view, where they can capture stunning AR content, whether it's captivating images or engaging videos.

Upon completion of the AR session, a callback function is triggered, passing along a TruvideoSdkCameraResult. This allows seamless integration of the captured AR content back into your app, enabling further processing or integration with existing features.

import TruvideoSdkCamera

viewController.presentTruvideoSdkAugmentedRealityCameraView(
    onComplete: { cameraResult in
        // Handle result of type TruvideoSdkCameraResult
    })

Entities

Preset

TruvideoSdkCameraConfiguration is a public class that encapsulates the configuration parameters for the TruvideoSDK camera. It includes settings such as the lens facing direction (front or back), flash mode, video orientation, output path for saved content, preferred video codec, and camera mode. This structure allows developers to customize camera behavior and output format to suit specific application requirements

public struct TruvideoSdkCameraConfiguration : Decodable {
    public let lensFacing: TruvideoSdkCamera.TruvideoSdkCameraLensFacing
    public let flashMode: TruvideoSdkCamera.TruvideoSdkCameraFlashMode
    public let orientation: TruvideoSdkCamera.TruvideoSdkCameraOrientation?
    public let outputPath: String
    public let videoCodec: TruvideoSdkCamera.TruvideoSdkCameraVideoCodec
    public let mode: TruvideoSdkCamera.TruvideoSdkCameraMode
}

Camera information

TruvideoSdkCameraInformation defines a structure holding information about available camera devices within the TruvideoSDK. It contains references to both front and back cameras, providing details such as device ID, lens facing direction, supported resolutions, flash availability, tap-to-focus capability, and sensor orientation. Developers can utilize this data to dynamically configure camera options and tailor the user experience accordingly.

public struct TruvideoSdkCameraInformation {
    public let frontCamera: TruvideoSdkCamera.TruvideoSdkCameraDevice?
    public let backCamera: TruvideoSdkCamera.TruvideoSdkCameraDevice?
}

public struct TruvideoSdkCameraDevice {
    public let id: String
    public let lensFacing: TruvideoSdkCamera.TruvideoSdkCameraLensFacing
    public let resolutions: [TruvideoSdkCamera.TruvideoSdkCameraResolution]
    public let withFlash: Bool
    public let isTapToFocusEnabled: Bool
    public let sensorOrientation: Int
}

Camera Resolution

TruvideoSdkCameraResolution is a class representing a specific resolution supported by a camera device. It includes attributes for width and height, allowing developers to ascertain available resolution options when configuring camera settings within their applications.

public class TruvideoSdkCameraResolution {
    public let width: Int32
    public let height: Int32
}

Lens Facing

TruvideoSdkCameraLensFacing enum represents the two possible directions of a camera lens: back or front.

public enum TruvideoSdkCameraLensFacing {
    case back
    case front
}

Flash Mode

TruvideoSdkCameraFlashMode enum defines two flash modes: off and on, offering developers control over flash functionality during media capture.

public enum TruvideoSdkCameraFlashMode {
    case off
    case on
}

Orientation

TruvideoSdkCameraOrientation enum offers four orientation choices: portrait, landscapeLeft, landscapeRight, and portraitReverse, enabling developers to define camera orientation preferences for media capture.

public enum TruvideoSdkCameraOrientation {
    case portrait
    case landscapeLeft
    case landscapeRight
    case portraitReverse
}

Camera Mode

TruvideoSdkCameraMode enum includes three modes: video and picture, video, and picture, enabling developers to specify whether the camera should capture both video and pictures, only video, or only pictures, respectively.

public enum TruvideoSdkCameraMode {
    case videoAndPicture
    case video
    case picture
}

Result

The results of TruvideoSDK camera operations, present an array of TruvideoSdkCameraMedia. Each TruvideoSdkCameraMedia object holds essential video attributes like createdAt, filePath, type, cameraLensFacing, rotation, resolution, and duration. Meanwhile, type defines the TruvideoSdkCameraMedia as photo or video as TruvideoSdkCameraMediaType.clip defines video and TruvideoSdkCameraMediaType.photo defines photo. This comprehensive data structure empowers developers to manage captured media seamlessly, facilitating integration and post-processing within their applications.

public struct TruvideoSdkCameraMedia {
    public let createdAt: Double
    public let filePath: String
    public let type: TruvideoSdkCameraMediaType
    public let cameraLensFacing: TruvideoSdkCameraLensFacing
    public let rotation: TruvideoSdkCameraOrientation
    public let resolution: TruvideoSdkCameraResolution
    public let duration: Int64
}

public enum TruvideoSdkCameraMediaType {
    case clip
    case photo
}

Last updated

Was this helpful?