Recorder Class

Description

Recorder is a video recorder for the rendering context.

The current Recorder only works in OpenGL ES 2.0 contexts on Android (4.3 and later) and iOS.

Constructor

C: void easyar_Recorder__ctor(easyar_Recorder * * Return)
C++11: Recorder()
Traditional C++: Recorder()
Java: public Recorder()
Objective-C: + (easyar_Recorder *) create
Swift (since EasyAR SDK 2.1.0): public convenience init()

setOutputFile

Set absolute path for output video file. It must be set before start.

C: void easyar_Recorder_setOutputFile(easyar_Recorder * This, easyar_String * path)
C++11: void setOutputFile(std::string path)
Traditional C++: void setOutputFile(String * path)
Java: public native void setOutputFile(java.lang.String path)
Objective-C: - (void)setOutputFile:(NSString *)path
Swift (since EasyAR SDK 2.1.0): public func setOutputFile(_ path: String) -> Void

setInputTexture

Set texture to be recorded. It must be set before start.

texPtr should be set to the texture id in OpenGL, usually you can do this by cast it to void* using reinterpret_cast in C++.

Texture can be changed during recording.

C: void easyar_Recorder_setInputTexture(easyar_Recorder * This, void * texPtr, int width, int height)
C++11: void setInputTexture(void * texPtr, int width, int height)
Traditional C++: void setInputTexture(void * texPtr, int width, int height)
Java: public native void setInputTexture(long texPtr, int width, int height)
Objective-C: - (void)setInputTexture:(void *)texPtr width:(int)width height:(int)height
Swift (since EasyAR SDK 2.1.0): public func setInputTexture(_ texPtr: OpaquePointer, _ width: Int32, _ height: Int32) -> Void

requestPermissions

Request platform permission for recording. You can choose to call this or request permissions by yourself.

C: void easyar_Recorder_requestPermissions(easyar_Recorder * This, easyar_FunctorOfVoidFromPermissionStatusAndString permissionCallback)
C++11: void requestPermissions(std::function<void(PermissionStatus, std::string)> permissionCallback)
Traditional C++: void requestPermissions(FunctorOfVoidFromPermissionStatusAndString permissionCallback)
Java: public native void requestPermissions(FunctorOfVoidFromPermissionStatusAndString permissionCallback)
Objective-C: - (void)requestPermissions:(void (^)(easyar_PermissionStatus status, NSString * value))permissionCallback
Swift (since EasyAR SDK 2.1.0): public func requestPermissions(_ permissionCallback: @escaping (PermissionStatus, String) -> Void) -> Void

open

Initialize recorder functions.

C: bool easyar_Recorder_open(easyar_Recorder * This, easyar_FunctorOfVoidFromRecordStatusAndString statusCallback)
C++11: bool open(std::function<void(RecordStatus, std::string)> statusCallback)
Traditional C++: bool open(FunctorOfVoidFromRecordStatusAndString statusCallback)
Java: public native boolean open(FunctorOfVoidFromRecordStatusAndString statusCallback)
Objective-C: - (bool)open:(void (^)(easyar_RecordStatus status, NSString * value))statusCallback
Swift (since EasyAR SDK 2.1.0): public func `open`(_ statusCallback: @escaping (RecordStatus, String) -> Void) -> Bool

start

Start recording. This should be called in the renderer thread.

C: void easyar_Recorder_start(easyar_Recorder * This)
C++11: void start()
Traditional C++: void start()
Java: public native void start()
Objective-C: - (void)start
Swift (since EasyAR SDK 2.1.0): public func start() -> Void

updateFrame

Update and record a frame using texture data. This should be called in the renderer thread.

C: void easyar_Recorder_updateFrame(easyar_Recorder * This)
C++11: void updateFrame()
Traditional C++: void updateFrame()
Java: public native void updateFrame()
Objective-C: - (void)updateFrame
Swift (since EasyAR SDK 2.1.0): public func updateFrame() -> Void

stop

Stop recording. After calling stop, the recording will not stop immediately, make sure to check callbacks to get recording stop event.

C: void easyar_Recorder_stop(easyar_Recorder * This)
C++11: void stop()
Traditional C++: void stop()
Java: public native void stop()
Objective-C: - (void)stop
Swift (since EasyAR SDK 2.1.0): public func stop() -> Void

close

Close the recorder. After calling close, all resources will be released. So if you call close before the recording really ends, it may block until the recording finish.

C: void easyar_Recorder_close(easyar_Recorder * This)
C++11: void close()
Traditional C++: void close()
Java: public native void close()
Objective-C: - (void)close
Swift (since EasyAR SDK 2.1.0): public func close() -> Void

setProfile

Set recording profile. Default value is Quality_720P_Middle. It will take effect only if called before start.

This is an all-in-one configration, you can control in more advanced mode with other APIs.

C: bool easyar_Recorder_setProfile(easyar_Recorder * This, easyar_RecordProfile profile)
C++11: bool setProfile(RecordProfile profile)
Traditional C++: bool setProfile(RecordProfile profile)
Java: public native boolean setProfile(/* RecordProfile */ int profile)
Objective-C: - (bool)setProfile:(easyar_RecordProfile)profile
Swift (since EasyAR SDK 2.1.0): public func setProfile(_ profile: RecordProfile) -> Bool

setVideoSize

Set recording video size. Default value is Vid720p. It will take effect only if called before start.

C: void easyar_Recorder_setVideoSize(easyar_Recorder * This, easyar_RecordVideoSize framesize)
C++11: void setVideoSize(RecordVideoSize framesize)
Traditional C++: void setVideoSize(RecordVideoSize framesize)
Java: public native void setVideoSize(/* RecordVideoSize */ int framesize)
Objective-C: - (void)setVideoSize:(easyar_RecordVideoSize)framesize
Swift (since EasyAR SDK 2.1.0): public func setVideoSize(_ framesize: RecordVideoSize) -> Void

setVideoBitrate

Set recording video bitrate. Default value is 2500000. It will take effect only if called before start.

C: void easyar_Recorder_setVideoBitrate(easyar_Recorder * This, int bitrate)
C++11: void setVideoBitrate(int bitrate)
Traditional C++: void setVideoBitrate(int bitrate)
Java: public native void setVideoBitrate(int bitrate)
Objective-C: - (void)setVideoBitrate:(int)bitrate
Swift (since EasyAR SDK 2.1.0): public func setVideoBitrate(_ bitrate: Int32) -> Void

setChannelCount

Set recording audio channel count. Default value is 1. It will take effect only if called before start.

C: void easyar_Recorder_setChannelCount(easyar_Recorder * This, int count)
C++11: void setChannelCount(int count)
Traditional C++: void setChannelCount(int count)
Java: public native void setChannelCount(int count)
Objective-C: - (void)setChannelCount:(int)count
Swift (since EasyAR SDK 2.1.0): public func setChannelCount(_ count: Int32) -> Void

setAudioSampleRate

Set recording audio sample rate. Default value is 44100. It will take effect only if called before start.

C: void easyar_Recorder_setAudioSampleRate(easyar_Recorder * This, int samplerate)
C++11: void setAudioSampleRate(int samplerate)
Traditional C++: void setAudioSampleRate(int samplerate)
Java: public native void setAudioSampleRate(int samplerate)
Objective-C: - (void)setAudioSampleRate:(int)samplerate
Swift (since EasyAR SDK 2.1.0): public func setAudioSampleRate(_ samplerate: Int32) -> Void

setAudioBitrate

Set recording audio bitrate. Default value is 96000. It will take effect only if called before start.

C: void easyar_Recorder_setAudioBitrate(easyar_Recorder * This, int bitrate)
C++11: void setAudioBitrate(int bitrate)
Traditional C++: void setAudioBitrate(int bitrate)
Java: public native void setAudioBitrate(int bitrate)
Objective-C: - (void)setAudioBitrate:(int)bitrate
Swift (since EasyAR SDK 2.1.0): public func setAudioBitrate(_ bitrate: Int32) -> Void

setVideoOrientation

Set recording video orientation. Default value is Landscape. It will take effect only if called before start.

C: void easyar_Recorder_setVideoOrientation(easyar_Recorder * This, easyar_RecordVideoOrientation mode)
C++11: void setVideoOrientation(RecordVideoOrientation mode)
Traditional C++: void setVideoOrientation(RecordVideoOrientation mode)
Java: public native void setVideoOrientation(/* RecordVideoOrientation */ int mode)
Objective-C: - (void)setVideoOrientation:(easyar_RecordVideoOrientation)mode
Swift (since EasyAR SDK 2.1.0): public func setVideoOrientation(_ mode: RecordVideoOrientation) -> Void

setZoomMode

Set recording zoom mode. Default value is NoZoomAndClip. It will take effect only if called before start.

C: void easyar_Recorder_setZoomMode(easyar_Recorder * This, easyar_RecordZoomMode mode)
C++11: void setZoomMode(RecordZoomMode mode)
Traditional C++: void setZoomMode(RecordZoomMode mode)
Java: public native void setZoomMode(/* RecordZoomMode */ int mode)
Objective-C: - (void)setZoomMode:(easyar_RecordZoomMode)mode
Swift (since EasyAR SDK 2.1.0): public func setZoomMode(_ mode: RecordZoomMode) -> Void