10. Media

ARGear provides photo capture and video recording features through ARGMedia in ratios of 16:9, 4:3, 1:1.

Before using camera functions, video device information must be provided to ARGMedia Class.

Sample code below shows how to set relevant information.

// Sample Code. Setting Video Device Information in ARGMedia Class

// videoDevice: AVCaptureDevice
// videoDeviceOrientation: AVCaptureVideoOrientation
// videoConnection: AVCaptureConnection
// mediaRatio: ARGMediaRatio
// videoBitrate: ARGMediaVideoBitrate
 
ARGMedia *argMedia = [[ARGMedia alloc] init];
 
[argMedia setVideoDevice:device];
[argMedia setVideoDeviceOrientation:videoDeviceOrientation];
[argMedia setVideoConnection:videoConnection];
[argMedia setMediaRatio:ARGMediaRatio_4x3];
[argMedia setVideoBitrate:ARGMediaVideoBitrate_2M];

10.1 Take a Photo

Using the takePicture function in ARGMedia, users can take a photo of the current rendered ARGFrame. After a photo is captured, the photo is converted into a UIImage and is accessible in the closure interface.

Sample code below shows how to get the captured photo.

// Sample Code. Getting a Captured Image

UIImageView *imageView = [[UIImageView alloc] init];
[_argMedia takePic:^(UIImage * _Nonnull image) {
    [imageView setImage:image];
}];

10.2 Record a Video

By calling recordVideoStart and recordVideoStop method in ARGMedia class, you can start or stop video recording. Recorded video must be converted into a NSDictionary.

Sample code below shows how to obtain a recorded video.

// Sample Code. Start and Stop Video Recording

ARGMedia *argMedia = [[ARGMedia alloc] init];

 
// Start Video Recording
[argMedia recordVideoStart:^(CGFloat recTime) {
    dispatch_async(dispatch_get_main_queue(), ^{
        // recTime represents recorded time
    });
}];
 
// Stop Video Recording
[argMedia recordVideoStop:^(NSDictionary * _Nonnull videoInfo) {
} save:^(NSDictionary * _Nonnull videoInfo) {
    // converting video data into NSDictionary form
}];

Last updated