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?