Recorder implementiert Bildschirmaufzeichnung für die aktuelle Rendering-Umgebung. Der aktuelle Recorder funktioniert nur unter Android (4.3 oder neuer) und in der OpenGL ES 3.0-Umgebung unter iOS. Da er von OpenGLES abhängt, müssen alle Funktionen dieser Klasse (außer requestPermissions, einschließlich Destruktor) in einem einzelnen Thread aufgerufen werden, der einen OpenGLES-Kontext enthält. Unity Only Wenn in Unity Multi-threaded rendering verwendet wird, wird der Skript-Thread vom Rendering-Thread getrennt, und updateFrame kann nicht im Rendering-Thread aufgerufen werden. Wenn Bildschirmaufzeichnung benötigt wird, sollte Multi-threaded rendering daher deaktiviert werden. Bei Verwendung unter Android muss die Berechtigungsdeklaration android.permission.RECORD_AUDIO zu AndroidManifest.xml hinzugefügt werden. Bei Verwendung unter iOS muss die Berechtigungsdeklaration NSMicrophoneUsageDescription zu Info.plist hinzugefügt werden.
bool easyar_Recorder_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
public static func isAvailable() -> Bool
public static bool isAvailable()
Fordert die für die Bildschirmaufzeichnung erforderlichen Systemberechtigungen an. Sie können diese Funktion verwenden oder selbst Systemfunktionen aufrufen, um Berechtigungen anzufordern. Sie ist nur auf Android und iOS gültig. Auf anderen Plattformen wird direkt der callback aufgerufen, um zu melden, dass die Berechtigung erteilt wurde. Diese Funktion sollte im UI thread aufgerufen werden.
void easyar_Recorder_requestPermissions(easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromPermissionStatusAndString permissionCallback)
static void requestPermissions(std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(PermissionStatus, std::string)>> permissionCallback)
public static void requestPermissions(@Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromPermissionStatusAndString permissionCallback)
companion object fun requestPermissions(callbackScheduler: CallbackScheduler, permissionCallback: FunctorOfVoidFromPermissionStatusAndString?): Unit
+ (void)requestPermissions:(easyar_CallbackScheduler *)callbackScheduler permissionCallback:(void (^)(easyar_PermissionStatus status, NSString * value))permissionCallback
public static func requestPermissions(_ callbackScheduler: CallbackScheduler, _ permissionCallback: ((PermissionStatus, String) -> Void)?) -> Void
public static void requestPermissions(CallbackScheduler callbackScheduler, Optional<Action<PermissionStatus, string>> permissionCallback)
void easyar_Recorder_create(easyar_RecorderConfiguration * config, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromRecordStatusAndString statusCallback, easyar_Recorder * * Return)
static std::shared_ptr<Recorder> create(std::shared_ptr<RecorderConfiguration> config, std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(RecordStatus, std::string)>> statusCallback)
public static @Nonnull Recorder create(@Nonnull RecorderConfiguration config, @Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromRecordStatusAndString statusCallback)
companion object fun create(config: RecorderConfiguration, callbackScheduler: CallbackScheduler, statusCallback: FunctorOfVoidFromRecordStatusAndString?): Recorder
+ (easyar_Recorder *)create:(easyar_RecorderConfiguration *)config callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler statusCallback:(void (^)(easyar_RecordStatus status, NSString * value))statusCallback
public static func create(_ config: RecorderConfiguration, _ callbackScheduler: CallbackScheduler, _ statusCallback: ((RecordStatus, String) -> Void)?) throws -> Recorder
public static Recorder create(RecorderConfiguration config, CallbackScheduler callbackScheduler, Optional<Action<RecordStatus, string>> statusCallback)
void easyar_Recorder_updateFrame(easyar_Recorder * This, easyar_TextureId * texture, int width, int height)
void updateFrame(std::shared_ptr<TextureId> texture, int width, int height)
public void updateFrame(@Nonnull TextureId texture, int width, int height)
fun updateFrame(texture: TextureId, width: Int, height: Int): Unit
- (void)updateFrame:(easyar_TextureId *)texture width:(int)width height:(int)height
public func updateFrame(_ texture: TextureId, _ width: Int32, _ height: Int32) -> Void
public virtual void updateFrame(TextureId texture, int width, int height)
Stoppt die Bildschirmaufzeichnung. Nachdem stop aufgerufen wurde, wartet es auf den Abschluss des Dateischreibens und gibt zurück, ob die Aufzeichnung erfolgreich war.