萤石云 iOSSDK,移植跨平台相关工程
Davin
2024-12-18 b4e1288a9b63eb820e9c9489c56aac4bf6b31067
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
191
192
193
194
195
196
//
//  EZBAVParam.h
//  EZBAVClient
//
//  Created by kanhaiping on 2018/6/27.
//  Copyright © 2018年 hikvision. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
 
/*
 typedef struct SBavDevInfo
 {
     YS_INT8            m_szDevSerial[STREAM_DEV_SERIAL_LEN + 1];                //必填    设备序列号
     YS_UINT32        m_sChannel;                                                //必填    通道号
     YS_INT16        m_sDevStreamType;                                        //必填    设备主子码类型
     YS_INT8            m_szAuthToken[STREAM_TOKEN_LEN + 1];                    //必填    认证token
 }SBavDevInfo;
 */
 
@interface EZBAVDevInfo : NSObject
@property (nonatomic, strong) NSString *serial; /**< 必填    设备序列号 */
@property (nonatomic, assign) int32_t m_iChannel;//必填    通道号
@property (nonatomic, assign) int32_t m_iDevStreamType;//必填    设备主子码类型
@property (nonatomic, strong) NSString *m_szAuthToken; /**< 必填    认证token */
@end
/*
 typedef struct
 {
     YS_UINT32        m_iRoomId;                                                //必填    需要加入房间号
     YS_UINT32        m_uClientId;                                            //必填    加入方clientId
     YS_INT8            m_szCustomId[CUSTOMID_LEN + 1];                            //选择    加入方自定义Id
     YS_INT8            m_szPassword[STREAM_TOKEN_LEN + 1];                        //必填    房间密码
     YS_UINT8        m_iCltType;                                                //必填    客户端类型
     YS_UINT16        m_iStsPort;                                                //必填    转发服务端口
     YS_INT8            m_szStsAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1];            //必填    转发服务地址
     YS_UINT16        m_iVcPort;                                                //必填    会控服务端口
     YS_INT8            m_szVcAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1];                //必填    会控服务地址
     YS_INT8            m_szFilePath[FLIEPATH + 1];                                //选择  写文件的路径
     YS_INT8            m_szExtensionParas[CLIENT_STREAM_EXTENSION_LEN + 1];    //选择    扩展字段信息
 }EZConferenceParam;
 */
@interface EZRTCJoinParam : NSObject
@property (nonatomic, assign) int32_t m_iRoomId; /**<必填    需要加入房间号 */
@property (nonatomic, assign) int32_t m_uClientId; /**< 必填    加入方clientId */
@property (nonatomic, strong) NSString *m_szCustomId;  /**< 选择    加入方自定义Id */
@property (nonatomic, strong) NSString *m_szPassword;  /**< 选择     房间密码 */
@property (nonatomic, assign) int32_t m_iCltType; /**< 必填    客户端类型 */
@property (nonatomic, strong) NSString *m_szVcAddr;//必填    视频会议必填 会控服务地址
@property (nonatomic, assign) int32_t m_iVcPort;//必填    视频会议必填 会控服务端k口
@property (nonatomic, strong) NSString *m_szStsAddr; /**< 必填    转发服务地址 */
@property (nonatomic, assign) int32_t m_iStsPort; /**< 必填    转发服务端口 */
@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 选择    扩展字段信息 */
 
@end
 
 
@interface EZBAVParam : NSObject
 
@property (nonatomic, assign) int32_t m_iCltRole; /**< 必填    0 发起 1 接受 发起端填写0 接受端填写1 拒绝为2 */
@property (nonatomic, assign) int32_t m_iStreamType;/**< 必选    0 音视频 1 对讲 2 会议*/
//@property (nonatomic, assign) int32_t m_szIsNpq;/**< 选择  0 不走NPQ,走TCP 1 是NPQ,走UDP */
@property (nonatomic, assign) int32_t m_iCltType; /**< 必填    客户端类型 */
 
@property (nonatomic, strong) NSString *m_szVcAddr;//必填    视频会议必填 会控服务地址
@property (nonatomic, assign) int32_t m_iVcPort;//必填    视频会议必填 会控服务端k口
@property (nonatomic, strong) NSString *m_szStsAddr; /**< 必填    转发服务地址 */
@property (nonatomic, assign) int32_t m_iStsPort; /**< 必填    转发服务端口 */
 
@property (nonatomic, assign) int32_t m_iRoomId; /**< 选择    需要加入房间号,只有接受端需要填写 */
@property (nonatomic, assign) int32_t m_iClientId; //选填  发起or加入者的id
@property (nonatomic, strong) NSString *m_szSelfId;  /**< 必填  标识Id */
@property (nonatomic, assign) int32_t m_iReason; /**< 选择  原因 拒接接听101 无人接听102 */
 
//@property (nonatomic, assign) int32_t m_iMaxBitrate;/**< 必填    码率变化范围的最大值 */
//
//@property (nonatomic, assign) int32_t m_iMinBitrate;/**< 必填    码率变化范围的最小值 */
 
//@property (nonatomic, assign) int32_t m_iType;/**< 选择  参考BAV_QOS_TYPE */
//
//@property (nonatomic, assign) int32_t m_iVideo;/**< 选择  是否开启视频Qos 1 开启 0 不开启 */
//
//@property (nonatomic, assign) int32_t m_iAudio;/**< 选择  是否开启音频Qos 1 开启 0 不开启 */
 
@property (nonatomic, assign) int32_t m_iAuthType; /**< 必填    认证方式 */
@property (nonatomic, strong) NSString *m_szAuthToken; /**< 必填    认证token */
 
 
 
@property (nonatomic, assign) int32_t m_iOtherCltType; /**< 选择    只有对端是手表端需填写 */
@property (nonatomic, strong) NSString *m_szOterId; /**< 选择    只有对端是手表端需填写 */
@property (nonatomic, assign) int32_t m_iChannel;//选填  三方音视频时,IPC设备需要填写
@property (nonatomic, assign) int32_t m_iDevStreamType;//选填  设备主子码流
 
@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 选择    扩展字段信息 */
 
 
@end
 
 
 
/// 与会者信息
@interface EZRTCParticipantsInfo : NSObject
@property (nonatomic, assign) uint32_t m_uRoomId;
@property (nonatomic, assign) uint32_t m_uClientId;
@property (nonatomic, strong) NSString *m_sCustomId;
@property (nonatomic, strong) NSString *m_szUserName;
@property (nonatomic, assign) uint8_t m_iCltType; //用以区分是否是设备 111:设备 
@property (nonatomic, assign) int8_t audioState;// 声音启用状态 0-关闭 1-启用
@property (nonatomic, assign) int8_t videoState;// 视频启用状态 0-关闭 1-主流 5-主子流
@property (nonatomic, assign) int8_t shareState;// 屏幕共享启用状态 0-关闭 1-启用
@property (nonatomic, assign) int8_t upNetState;//网络状态
@property (nonatomic, assign) int8_t downNetState;//网络状态
 
@end
 
 
@interface EZRTCParticipantVolume : NSObject
@property (nonatomic, assign) uint32_t m_uClientId;
@property (nonatomic, strong) NSString *m_sCustomId;
@property (nonatomic, assign) uint8_t m_sVolume;    //音量强度0-10 10为最强 0为最弱
@end
 
 
@interface EZRTCStatistic : NSObject
@property (nonatomic, assign) int32_t type;//0:子表 1:主表
@property (nonatomic, strong) NSDictionary *statisticInfo;
@end
 
///本地的音视频统计
@interface EZRTCLocalStatistics : NSObject
///视频指标参数
@property (nonatomic, assign) uint32_t videoSentBitrate; //视频传输码率(上行)
@property (nonatomic, assign) uint32_t videoSentFrameRate; //帧率大小
@property (nonatomic, assign) uint16_t videoPacketLossRate; //视频丢包率
@property (nonatomic, assign) uint16_t videoStreamType; //流类型
///音频指标参数
@property (nonatomic, assign) uint32_t audioSentBitrate;//音频传输码率
@property (nonatomic, assign) uint16_t audioPacketLossRate;//音频丢包率
@end
 
///远端的音视频统计
@interface  EZRTCRemoteStatistics : NSObject
///视频指标参数
@property (nonatomic, assign) uint32_t videoClientId; //远端视频clientId
@property (nonatomic, assign) uint32_t videoReceivedBitrate;//远端视频传输码率(下行)
@property (nonatomic, assign) uint32_t videoReceivedFrameRate;//远端帧率大小
@property (nonatomic, assign) uint16_t videoPacketLossRate;//远端视频丢包率(下行)
@property (nonatomic, assign) uint16_t videoTotalFrozenTime;//远端视频总的卡顿时长
@property (nonatomic, assign) uint16_t videoFrozenRate; //远端视频卡顿比
@property (nonatomic, assign) uint16_t streamType; //远端流类型
///音频指标参数
@property (nonatomic, assign) uint32_t audioClientId; //远端音频clientId
@property (nonatomic, assign) uint32_t audioReceivedBitrate;//远端音频传输码率(下行)
@property (nonatomic, assign) uint16_t audioPacketLossRate;//远端音频丢包率(下行)
@property (nonatomic, assign) uint16_t audioTotalFrozenTime;//远端音频总的卡顿时长
@property (nonatomic, assign) uint16_t audioFrozenRate; //远端音频卡顿比
 
@end
 
@interface EZRTCVideoSize : NSObject
 
@property (nonatomic, assign) int width;//宽
@property (nonatomic, assign) int height;//高
 
@end
 
extern int32_t const EZBAVMessageRoomCreated;
extern int32_t const EZBAVMessagePeerEnteredRoom;
extern int32_t const EZBAVMessagePeerLeaveRoom;
extern int32_t const EZBAVMessageStartInputData;
//extern int32_t const EZBAVMessageOtherDisconnect;
extern int32_t const EZBAVMessageTransferData;
//extern int32_t const EZBAVMessageClientInfo;//其他与会客户端信息
extern int32_t const EZBAVMessageClientVolume;//其他与会客户端音量
extern int32_t const EZBAVMessageClientAudioAvailable;
extern int32_t const EZBAVMessageClientVideoAvailable;
extern int32_t const EZBAVMessageNetworkQuality;
extern int32_t const EZBAVMessageClientShareAvailable;
extern int32_t const EZBAVMessageJoinRoomOK;
extern int32_t const EZBAVMessageForcedQuit;
extern int32_t const EZBAVMessageStatistic;
 
extern int32_t const EZBAVForcedQuitReasonRepeatJoin;//已在其他地方加入房间
extern int32_t const EZBAVForcedQuitReasonMovedOut;//被管理员移出房间
extern int32_t const EZBAVForcedQuitReasonRoomDissolved;//房间解散
 
extern int32_t const  EZBAVMessageLocalVideoStats;//统计本地视频实时数据
extern int32_t const  EZBAVMessageLocalAudioStats;//统计本地音频实时数据
extern int32_t const  EZBAVMessageRemoteVideoStats;//统计远端视频实时数据
extern int32_t const  EZBAVMessageRemoteAudioStats;//统计远端音频实时数据
 
 
 
typedef void(^EZAudioOpenResultBlock)(NSInteger ret);