You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.8 KiB
118 lines
4.8 KiB
//
|
|
// ZegoExpressEngine+ScreenCapture.h
|
|
// ZegoExpressEngine
|
|
//
|
|
// Copyright © 2019 Zego. All rights reserved.
|
|
//
|
|
|
|
#import "ZegoExpressDefines.h"
|
|
#import "ZegoExpressEngine.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@interface ZegoExpressEngine (ScreenCapture)
|
|
|
|
#if TARGET_OS_OSX
|
|
/// Get a list of screens or windows in a screen.
|
|
///
|
|
/// Available since: 3.1.0
|
|
/// Description: Get a list of screens or windows in a screen.
|
|
/// Restrictions: Only support in Windows/macOS.
|
|
///
|
|
/// @param thumbnailSize Get the thumbnail size corresponding to the window, the thumbnail can be used to draw on the window selection interface. (unit is pixel)
|
|
/// @param iconSize Get the size of the icon corresponding to the program. (unit is pixel)
|
|
/// @return List of capture source info objects.
|
|
- (NSArray<ZegoScreenCaptureSourceInfo *> *)
|
|
getScreenCaptureSourcesWithThumbnailSize:(CGSize)thumbnailSize
|
|
iconSize:(CGSize)iconSize;
|
|
#endif
|
|
|
|
#if TARGET_OS_OSX
|
|
/// Create the screen capture source
|
|
///
|
|
/// Available: since 3.1.0
|
|
/// Description: Creates a screen capture source object based on the provided source ID and source type.
|
|
/// Use cases: It is used when you need to record and share the screen or window.
|
|
/// When to call: It needs to be called after [createEngine].
|
|
/// Platform differences: Only supports Windows and macOS.
|
|
///
|
|
/// @param sourceId The specified screen ID or window ID.
|
|
/// @param sourceType The specified screen source type.
|
|
/// @return The screen capture instance, nil will be returned when the maximum number is exceeded.
|
|
- (nullable ZegoScreenCaptureSource *)createScreenCaptureSource:(unsigned int)sourceId
|
|
sourceType:
|
|
(ZegoScreenCaptureSourceType)sourceType;
|
|
#endif
|
|
|
|
#if TARGET_OS_OSX
|
|
/// Destroy the screen capture source instance
|
|
///
|
|
/// Available: since 3.1.0
|
|
/// Description: Destroy the [ZegoScreenCaptureSource] instance object.
|
|
/// Use cases: When you no longer need to use the screen capture function, you can use this function to destroy the instance object created by the [createScreenCaptureSource] function
|
|
/// When to call: When you need to the screen capture source object needs to be destroyed
|
|
/// Restrictions: After destroy the instance, you need to release the [ZegoScreenCaptureSource] instance object you hold by yourself, and don’t call the function of this instance object after the destruction.
|
|
/// Platform differences: Only supports Windows and macOS.
|
|
///
|
|
/// @param source The screen capture source instance to be destroyed.
|
|
- (void)destroyScreenCaptureSource:(ZegoScreenCaptureSource *)source;
|
|
#endif
|
|
|
|
#if TARGET_OS_IPHONE
|
|
/// Set the App Group configuration item.
|
|
///
|
|
/// Available since: 3.3.0
|
|
/// Use cases: You need to use the iOS cross-process screen sharing function, and you need to start the App Group, which can provide better performance and stability. Must be used with [setupWithAppGroupID:] in the `ZegoReplayKit` extension class.
|
|
/// When to call: Called after [createEngine], before calling [startScreenCapture].
|
|
/// Restrictions: Only available on iOS platform.
|
|
///
|
|
/// @param groupID The host app and the extension app should belong to the same App Group, and the AppGroupID needs to be passed in here.
|
|
- (void)setAppGroupID:(NSString *)groupID API_AVAILABLE(ios(12.0));
|
|
#endif
|
|
|
|
#if TARGET_OS_IPHONE
|
|
/// Start screen capture, in-app capture only.
|
|
///
|
|
/// Available since: 3.1.0
|
|
/// Description: Start screen capture.
|
|
/// When to call: After calling the [setVideoSource]、[setAudioSource] function to set the capture source to `ScreenCapture`.
|
|
/// Restrictions: Only valid for iOS system
|
|
///
|
|
/// @param config Screen capture parameter configuration.
|
|
- (void)startScreenCaptureInApp:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios(12.0));
|
|
#endif
|
|
|
|
#if TARGET_OS_IPHONE
|
|
/// Start screen capture.
|
|
///
|
|
/// Available since: 3.1.0
|
|
/// Description: Start screen capture.
|
|
/// When to call: After calling the [setVideoSource]、[setAudioSource] function to set the capture source to `ScreenCapture`.
|
|
///
|
|
/// @param config Screen capture parameter configuration.
|
|
- (void)startScreenCapture:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios(12.0));
|
|
#endif
|
|
|
|
#if TARGET_OS_IPHONE
|
|
/// Stop screen capture.
|
|
///
|
|
/// Available since: 3.1.0
|
|
/// Description: Stop screen capture.
|
|
- (void)stopScreenCapture API_AVAILABLE(ios(12.0));
|
|
#endif
|
|
|
|
#if TARGET_OS_IPHONE
|
|
/// Update screen capture parameter configuration.
|
|
///
|
|
/// Available since: 3.1.0
|
|
/// Description: Update screen capture parameter configuration.
|
|
/// When to call: After calling [startScreenCapture] to start capturing.
|
|
/// Restrictions: Only valid for iOS system. Only available on iOS 12.0 or newer
|
|
///
|
|
/// @param config Screen capture parameter configuration.
|
|
- (void)updateScreenCaptureConfig:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios(12.0));
|
|
#endif
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|
|
|