phizclip-uniapp-demo/finclip-uniapp-test/nativeplugins/MopSdk/ios/FinApplet.framework/Headers/FATAppletNativeProtocol.h

171 lines
7.6 KiB
C
Raw Normal View History

2022-06-08 11:57:35 +08:00
//
// FATAppletNativeProtocol.h
// FinApplet
//
// Created by hujianhui on 2020/11/26.
// Copyright © 2020 finogeeks. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "FATConstant.h"
#import "FATAppletInfo.h"
/*
https://developers.weixin.qq.com/miniprogram/dev/component/camera.html
https://developers.weixin.qq.com/miniprogram/dev/component/live-player.html
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
*/
typedef void (^FATNativeCallback)(BOOL isSuccess, NSDictionary<NSString *, id> *result);
@protocol FATAppletNativeViewProtocol <NSObject>
@required
@property (nonatomic, strong) NSNumber *nativeViewId;
@property (nonatomic, strong) NSString *type;
+ (UIView *)onCreateView:(NSDictionary *)param;
- (void)onUpdateView:(NSDictionary *)param;
@optional
// 用户定义的组件id
@property (nonatomic, strong) NSString *ID;
- (void)onDestroyView:(NSDictionary *)param;
- (void)onInvokeNativeViewTask:(NSDictionary *)param;
@end
@protocol FATAppletNativeCameraProtocol <FATAppletNativeViewProtocol>
@optional
- (void)cameraFrameListenerStart:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)cameraFrameListenerStop:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)setCameraZoom:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)startCameraRecord:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)stopCameraRecord:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)takeCameraPhoto:(NSDictionary *)param completion:(FATNativeCallback)callBack;
@end
@protocol FATAppletNativeLivePlayerProtocol <FATAppletNativeViewProtocol>
/*
id, // 用户定义的组件id
nativeViewId,
src, // 音视频地址
mode, // 模式
autoplay, // 自动播放
muted, // 是否静音
orientation, // 画面方向
objectFit, // 填充模式,可选值有 containfillCrop
minCache, // 最小缓冲区单位sRTC 模式推荐 0.2s
maxCache, // 最大缓冲区单位sRTC 模式推荐 0.8s)。缓冲区用来抵抗网络波动,缓冲数据越多,网络抗性越好,但时延越大。
soundMode, // 声音输出方式
autoPauseIfNavigate, // 当跳转到本小程序的其他页面时,是否自动暂停本页面的实时音视频播放
autoPauseIfOpenNative, // 当跳转到其它微信原生页面时,是否自动暂停本页面的实时音视频播放
pictureInPictureMode, // 设置小窗模式: push, pop空字符串或通过数组形式设置多种模式 ["push", "pop"]
type: 'live-player',
*/
@optional
- (void)livePlayerExitFullScreen:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePlayerExitPictureInPicture:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePlayerMute:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)liveplayerPause:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePlayerPlay:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)liveplayerRequestFullScreen:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)liveplayerResume:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)liveplayerSnapshot:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)liveplayerStop:(NSDictionary *)param completion:(FATNativeCallback)callBack;
@end
@protocol FATAppletNativeLivePusherProtocol <FATAppletNativeViewProtocol>
/*
id, // 用户定义的组件id
url, // 推流地址。目前仅支持 rtmp 格式
mode, // SD标清, HD高清, FHD超清, RTC实时通话
autopush, // 自动推流
muted, // 是否静音
enableCamera, // 开启摄像头
autoFocus, // 自动聚集
orientation, // 画面方向
beauty, // 美颜,取值范围 0-9 0 表示关闭
whiteness, // 美白,取值范围 0-9 0 表示关闭
aspect, // 宽高比,可选值有 3:4, 9:16
minBitrate, // 最小码率
maxBitrate, // 最大码率
audioQuality, // 高音质(48KHz)或低音质(16KHz)值为high, low
waitingImage, // 进入后台时推流的等待画面
waitingImageHash, // 等待画面资源的MD5值
zoom, // 调整焦距
devicePosition, // 前置或后置值为front, back
mirror, // 设置推流画面是否镜像,产生的效果在 live-player 反应到
remoteMirror, // 同 mirror 属性,后续 mirror 将废弃
localMirror, // 控制本地预览画面是否镜像
audioReverbType, // 音频混响类型
enableMic, // 开启或关闭麦克风
enableAgc, // 是否开启音频自动增益
enableAns, // 是否开启音频噪声抑制
audioVolumeType, // 音量类型
videoWidth, // 上推的视频流的分辨率宽度
videoHeight, // 上推的视频流的分辨率高度
beautyStyle, // 设置美颜类型
filter, // 设置色彩滤镜
type: 'live-pusher',
...options // 用户通过组件options配置的其他配置项
*/
@optional
- (void)livePusherPause:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherPauseBGM:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherPlayBGM:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherResume:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherResumeBGM:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherSetBGMVolume:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherSetMICVolume:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherSnapshot:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePlayerExitFullScreen:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherStart:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherStop:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherStopBGM:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherStopPreview:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherSwitchCamera:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherStartPreview:(NSDictionary *)param completion:(FATNativeCallback)callBack;
- (void)livePusherToggleTorch:(NSDictionary *)param completion:(FATNativeCallback)callBack;
@end
2022-10-19 12:51:03 +08:00
typedef NS_ENUM(NSInteger, FATCapsuleButtonState) {
FATCapsuleButtonStateNull = 0,
FATCapsuleButtonStateLocation,
FATCapsuleButtonStateMicroPhone
};
@class FATPageBaseViewController;
@protocol FATCapsuleViewProtocol <NSObject>
/// 展示/隐藏胶囊视图
/// @param isShow 是否展示
/// @param webViewController 胶囊所在的页面
- (void)showCapsuleView:(BOOL)isShow webViewController:(FATPageBaseViewController *)webViewController;
/// 加载胶囊样式
- (void)loadCapsuleViewStyle;
/// 更新胶囊frame
- (void)layoutCapsuleView;
/// 控制胶囊按钮的状态按钮是否隐藏
/// @param hidden 是否隐藏
/// @param state 状态按钮的样式
/// @param animate 是否动画
- (void)controlCapsuleStateButton:(BOOL)hidden state:(FATCapsuleButtonState)state animate:(BOOL)animate;
/// 获取胶囊状态
- (FATCapsuleButtonState)capsuleViewState;
@end