cdts/xdts-ios 3/TUICalling/Source/UI/Manager/TUICallingFloatingWindowManager.h
2023-07-27 09:20:00 +08:00

67 lines
2.0 KiB
Objective-C

//
// TUICallingFloatingWindowManager.h
// TUICalling
//
// Created by noah on 2022/1/13.
//
#import <Foundation/Foundation.h>
#import "TUICallingConstants.h"
@class TUICallingVideoRenderView;
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, TUICallingFloatingWindowType) {
TUICallingFloatingWindowTypeAudio, // 语音悬浮窗类型
TUICallingFloatingWindowTypeVideo, // 视频悬浮窗类型
};
@protocol TUICallingFloatingWindowManagerDelegate <NSObject>
/// 点击悬浮窗回调
- (void)floatingWindowDidClickView;
/// 关闭悬浮窗回调
- (void)closeFloatingWindow;
@end
@interface TUICallingFloatingWindowManager : NSObject
// 是否显示小悬浮框
@property (nonatomic, assign) BOOL isFloating;
/// 单例
+ (instancetype)shareInstance;
/// 设置回调监听
- (void)setFloatingWindowManagerDelegate:(id<TUICallingFloatingWindowManagerDelegate>)delegagte;
/// 显示小窗口悬浮窗
/// @param callingWindow 源calling窗口
/// @param renderView 渲染视图, 没有则可为空
/// @param completion 结果回调
- (void)showMicroFloatingWindowWithCallingWindow:(nullable UIWindow *)callingWindow VideoRenderView:(TUICallingVideoRenderView *)renderView Completion:(void (^ __nullable)(BOOL finished))completion;
/// 关闭悬浮窗
/// @param completion 结果回调
- (void)closeWindowCompletion:(void (^ __nullable)(BOOL finished))completion;
/// 切换视频悬浮窗到音频悬浮窗
/// @param callingState 拨打状态
- (void)switchToAudioMicroWindowWith:(TUICallingState)callingState;
/// 更新文本悬浮窗-语音、多人通话小窗
/// @param textStr 文本展示(时间、状态)
/// @param callingState 拨打状态
- (void)updateMicroWindowText:(NSString *)textStr callingState:(TUICallingState)callingState;
/// 更新视频悬浮窗-视频通话小窗
/// @param renderView 视频视图(本地、远程)
- (void)updateMicroWindowRenderView:(TUICallingVideoRenderView *)renderView;
@end
NS_ASSUME_NONNULL_END