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.

Objective-C
Swift
Objective-C
// 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];
Swift
// Sample Code. Setting Video Device Information in ARGMedia Class
// videoDevice: AVCaptureDevice
// videoDeviceOrientation: AVCaptureVideoOrientation
// videoConnection: AVCaptureConnection
// mediaRatio: ARGMediaRatio
// videoBitrate: ARGMediaVideoBitrate
var arMedia = ARGMedia()
arMedia.setVideoDevice(arCamera.cameraDevice)
arMedia.setVideoDeviceOrientation(arCamera.cameraConnection.videoOrientation)
arMedia.setVideoConnection(arCamera.cameraConnection)
arMedia.setMediaRatio(._4x3)
arMedia.setVideoBitrate(._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.

Objective-C
Swift
Objective-C
// Sample Code. Getting a Captured Image
UIImageView *imageView = [[UIImageView alloc] init];
[_argMedia takePic:^(UIImage * _Nonnull image) {
[imageView setImage:image];
}];
Swift
// Sample Code. Getting a Captured Image
let imageView = UIImageView(frame: frame)
arMedia.takePic { image in
imageView.image = 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.

Objective-C
Swift
Objective-C
// 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
}];
Swift
// Sample Code. Start and Stop Video Recording
// Start Video Recording
arMedia.recordVideoStart { (sec) in
// recTime represents recorded time
}
// Stop Video Recording
arMedia.recordVideoStop({ (videoInfo) in
}) { (resultVideoInfo) in
// convert video data into NSDictionary form
}