JLChen
2021-11-04 1443556e9ccb1a19ed8e6710c16c8adc4d4f4fb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
//
//  LCOpenSDK_EventListener.h
//
//  Created by baozhiyong on 16-10-20.
//  Copyright (c) 2016年 baozhiyong. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, Direction) {
    Unkown,
    Left,        // 左
    Right,       // 右
    Up,          // 上
    Down,        // 下
    Left_up,     // 左上
    Right_up,    // 右上
    Left_down,   // 左下
    Right_down,  // 右下
    Unkown_Value,
};
 
typedef NS_ENUM(NSInteger, ZoomType) {
    Zoom_in,
    Zoom_out
};
@protocol LCOpenSDK_EventListener <NSObject>
 
@optional
#pragma mark - windowListener
/***************************************************************************
 ** windowListener
 ***************************************************************************/
/**
 *  单击回调
 *
 *  @param dx    [out]  窗口X坐标
 *  @param dy    [out]  窗口Y坐标
 *  @param index [out]  窗口索引值
 */
- (void)onControlClick:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
/**
 *  双击回调
 *
 *  @param dx    [out]  窗口X坐标
 *  @param dy    [out]  窗口Y坐标
 *  @param index [out]  窗口索引值
 */
- (void)onWindowDBClick:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
/**
 *  缩放开始回调
 *
 *  @param index [out]  窗口索引值
 */
- (void)onZoomBegin:(NSInteger)index;
/**
 *  缩放中回调
 *
 *  @param scale [out]  缩放比例
 *  @param index [out]  窗口索引值
 */
- (void)onZooming:(CGFloat)scale Index:(NSInteger)index;
/**
 *  缩放结束回调
 *
 *  @param zoom  [out]  缩放比例
 *  @param index [out]  窗口索引值
 */
- (void)onZoomEnd:(ZoomType)zoom Index:(NSInteger)index;
/**
 *  长按开始回调
 *
 *  @param dir   [out]  长按相对窗口中的方向
 *  @param dx    [out]  窗口X坐标值
 *  @param dy    [out]  窗口Y坐标值
 *  @param index [out]  窗口索引值
 */
- (void)onWindowLongPressBegin:(Direction)dir dx:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
/**
 *  长按结束回调
 *
 *  @param index [out]  窗口索引值
 */
- (void)onWindowLongPressEnd:(NSInteger)index;
/**
 *  滑动开始回调
 *
 *  @param dir   [out]  滑动方向
 *  @param dx    [out]  滑动开始,窗口X坐标值
 *  @param dy    [out]  滑动开始,窗口Y坐标值
 *  @param index [out]  窗口索引值
 */
- (void)onSlipBegin:(Direction)dir dx:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
/**
 *  滑动中回调
 *
 *  @param dir   [out]  滑动方向
 *  @param preX  [out]  滑动中前一个触摸点,窗口X坐标值
 *  @param preY  [out]  滑动中前一个触摸点,窗口Y坐标值
 *  @param dx    [out]  滑动中后一个触摸点,窗口X坐标值
 *  @param dy    [out]  滑动中后一个触摸点,窗口Y坐标值
 *  @param index [out]  窗口索引值
 */
- (void)onSlipping:(Direction)dir preX:(CGFloat)preX preY:(CGFloat)preY dx:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
/**
 *  滑动结束回调
 *
 *  @param dir   [out]  滑动方向
 *  @param dx    [out]  滑动结束,窗口X坐标值
 *  @param dy    [out]  滑动结束,窗口Y坐标值
 *  @param index [out]  窗口索引值
 */
- (void)onSlipEnd:(Direction)dir dx:(CGFloat)dx dy:(CGFloat)dy Index:(NSInteger)index;
 
#pragma mark - playListener
/**********************************************************************************
 ** playListener
 **********************************************************************************/
/**
 *  视频播放状态回调
 *
 *  @param code  错误码(根据type而定)
 *  @param type  0, RTSP
 *               1, HLS
 *              99, OPENAPI
 *  @param index 播放窗口索引值
 */
- (void)onPlayerResult:(NSString*)code Type:(NSInteger)type Index:(NSInteger)index;
 
/**
 *  (接口未使用)
 */
- (void)onResolutionChanged:(NSInteger)width Height:(NSInteger)height Index:(NSInteger)index;
 
/**
 *  视频播放数据回调
 *
 *  @param len   数据长度
 *  @param index 播放窗口索引值
 */
- (void)onReceiveData:(NSInteger)len Index:(NSInteger)index;
 
/**
 *  TS/PS标准流导出数据回调
 *
 *  @param data [out] 标准流导出数据
 */
- (void)onStreamCallback:(NSData*)data Index:(NSInteger)index;
/**
 *  视频播放开始回调
 *
 *  @param index 播放窗口索引值
 */
- (void)onPlayBegan:(NSInteger)index;
 
/**
 *  视频播放结束回调
 *
 *  @param index 播放窗口索引值
 */
- (void)onPlayFinished:(NSInteger)index;
 
/**
 *  (录像)视频播放时间回调
 *
 *  @param time  当前录像时间
 *  @param index 播放窗口索引值
 */
- (void)onPlayerTime:(long)time Index:(NSInteger)index;
 
/**
 *    @brief    获取文件的起始结束时间
 */
- (void)onFileTime:(long)beginTime EndTime:(long)endTime Index:(NSInteger)index;
 
/*
 * IVS解码回调函数。
 *
 * @param[in] pIVSBuf 辅助帧数据(json或智能帧结构体数据),当为智能帧结构体数据时,pIVSBuf为IVS Object结构体数组的起始地址
 * @param[in] nIVSType 辅助帧数据类型
 *            取值为IVSINFOTYPE_RAWDATA时,对应原始json数据
 *            取值为IVSINFOTYPE_TRACK时,单个IVS object对应结构体 SP_IVS_OBJ_EX;
 *            取值为IVSINFOTYPE_TRACK_EX_B0时,单个IVS object对应结构体 SP_IVS_COMMON_OBJ;
 * @param[in] nIVSBufLen 辅助帧数据长度(json或智能帧结构体数据),
 *              当为智能帧结构体数据时,nIVSBufLen为IVS Object的个数乘以单个IVS object的长度,单个IVS object的长度可由type备注类型获得
 * @param[in] nFrameSeq 辅助帧id
*/
- (void)onIVSInfo:(NSString*)pIVSBuf nIVSType:(long)nIVSType nIVSBufLen:(long)nIVSBufLen nFrameSeq:(long)nFrameSeq;
 
@end