Commit f55b052195e97e45017a059087ceb2a7710205a8

Authored by 雷浩杰
1 parent 5f6e63d2

no message

CNLivePlayerSDKTest/CNLivePlayerSDK.framework/CNLivePlayerSDK
No preview for this file type
CNLivePlayerSDKTest/CNLivePlayerSDK.framework/Headers/CNLiveGPUStreamerKit.h
@@ -82,24 +82,7 @@ @@ -82,24 +82,7 @@
82 @abstract 启动推流 82 @abstract 启动推流
83 @warning 鉴权成功后开启推流 83 @warning 鉴权成功后开启推流
84 */ 84 */
85 -- (void) startStream:(void (^)(void))success failure:(void (^)(NSError *error))failure;  
86 -  
87 -/**  
88 - @abstract 推流过程中异常通知  
89 - */  
90 -FOUNDATION_EXPORT NSString *const CNLiveStreamAbnormalNotification NS_AVAILABLE_IOS(7_0);  
91 -  
92 -/**  
93 - @abstract 结束推流成功  
94 - */  
95 -FOUNDATION_EXPORT NSString *const CNLiveStreamStopSuccessNotification NS_AVAILABLE_IOS(7_0);  
96 -  
97 -/**  
98 - @abstract 结束推流失败  
99 - */  
100 -FOUNDATION_EXPORT NSString *const CNLiveStreamStopFailedNotification NS_AVAILABLE_IOS(7_0);  
101 -  
102 - 85 +- (void) startStream:(void (^)(void))successBlock failure:(void (^)(NSDictionary *errorDic))failureBlock;
103 86
104 #pragma mark - 普通推流 87 #pragma mark - 普通推流
105 88
CNLivePlayerSDKTest/CNLivePlayerSDK.framework/Headers/CNLiveTypeDef.h
@@ -82,6 +82,10 @@ typedef NS_ENUM(NSUInteger, CNLiveStreamState) { @@ -82,6 +82,10 @@ typedef NS_ENUM(NSUInteger, CNLiveStreamState) {
82 CNLiveStreamStateDisconnecting, 82 CNLiveStreamStateDisconnecting,
83 /// 推流出错 83 /// 推流出错
84 CNLiveStreamStateError, 84 CNLiveStreamStateError,
  85 + /// 结束推流成功
  86 + CNLiveStopStreamSuccess,
  87 + /// 结束推流失败
  88 + CNLiveStopStreamFailure,
85 }; 89 };
86 90
87 /*! 91 /*!
@@ -124,6 +128,8 @@ typedef NS_ENUM(NSUInteger, CNLiveStreamErrorCode) { @@ -124,6 +128,8 @@ typedef NS_ENUM(NSUInteger, CNLiveStreamErrorCode) {
124 CNLiveStreamErrorCode_FRAMES_THRESHOLD, 128 CNLiveStreamErrorCode_FRAMES_THRESHOLD,
125 /// 没有输入的数据,无法开始推流 129 /// 没有输入的数据,无法开始推流
126 CNLiveStreamErrorCode_NO_INPUT_SAMPLE, 130 CNLiveStreamErrorCode_NO_INPUT_SAMPLE,
  131 + /// 异常
  132 + CNLiveStreamErrorCode_ABNORMAL,
127 }; 133 };
128 134
129 #endif /* CNLiveTypeDef_h */ 135 #endif /* CNLiveTypeDef_h */
CNLivePlayerSDKTest/CNLivePlayerSDK.framework/Info.plist
No preview for this file type
CNLivePlayerSDKTest/CNLivePlayerSDKTest.xcodeproj/project.pbxproj
@@ -7,6 +7,9 @@ @@ -7,6 +7,9 @@
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
  10 + 3236EF121DEEE1C800BF905D /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3236EF111DEEE1C800BF905D /* CNLivePlayerSDK.framework */; };
  11 + 32ACF8B41DEEE1D4003247CD /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3236EF111DEEE1C800BF905D /* CNLivePlayerSDK.framework */; };
  12 + 32ACF8B51DEEE1D4003247CD /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3236EF111DEEE1C800BF905D /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
10 32B4C85A1D9B66A400925AF0 /* CNLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B4C8591D9B66A400925AF0 /* CNLiveViewController.m */; }; 13 32B4C85A1D9B66A400925AF0 /* CNLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B4C8591D9B66A400925AF0 /* CNLiveViewController.m */; };
11 32B4C85D1D9B66E500925AF0 /* StreamerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B4C85C1D9B66E500925AF0 /* StreamerDetailViewController.m */; }; 14 32B4C85D1D9B66E500925AF0 /* StreamerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B4C85C1D9B66E500925AF0 /* StreamerDetailViewController.m */; };
12 32E6CA2B1D5B0AF400B58EBC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA2A1D5B0AF400B58EBC /* main.m */; }; 15 32E6CA2B1D5B0AF400B58EBC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA2A1D5B0AF400B58EBC /* main.m */; };
@@ -19,8 +22,6 @@ @@ -19,8 +22,6 @@
19 32E6CA921D5B2AF700B58EBC /* NormalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA881D5B2AF700B58EBC /* NormalViewController.m */; }; 22 32E6CA921D5B2AF700B58EBC /* NormalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA881D5B2AF700B58EBC /* NormalViewController.m */; };
20 32E6CA931D5B2AF700B58EBC /* PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA8A1D5B2AF700B58EBC /* PlayerViewController.m */; }; 23 32E6CA931D5B2AF700B58EBC /* PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA8A1D5B2AF700B58EBC /* PlayerViewController.m */; };
21 32E6CA951D5B2AF700B58EBC /* StreamerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA8F1D5B2AF700B58EBC /* StreamerViewController.m */; }; 24 32E6CA951D5B2AF700B58EBC /* StreamerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E6CA8F1D5B2AF700B58EBC /* StreamerViewController.m */; };
22 - 32F437DF1DC9E03300A074BE /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32F437DE1DC9E03300A074BE /* CNLivePlayerSDK.framework */; };  
23 - 32F437E11DC9E04900A074BE /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 32F437DE1DC9E03300A074BE /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };  
24 /* End PBXBuildFile section */ 25 /* End PBXBuildFile section */
25 26
26 /* Begin PBXCopyFilesBuildPhase section */ 27 /* Begin PBXCopyFilesBuildPhase section */
@@ -30,7 +31,7 @@ @@ -30,7 +31,7 @@
30 dstPath = ""; 31 dstPath = "";
31 dstSubfolderSpec = 10; 32 dstSubfolderSpec = 10;
32 files = ( 33 files = (
33 - 32F437E11DC9E04900A074BE /* CNLivePlayerSDK.framework in Embed Frameworks */, 34 + 32ACF8B51DEEE1D4003247CD /* CNLivePlayerSDK.framework in Embed Frameworks */,
34 ); 35 );
35 name = "Embed Frameworks"; 36 name = "Embed Frameworks";
36 runOnlyForDeploymentPostprocessing = 0; 37 runOnlyForDeploymentPostprocessing = 0;
@@ -38,6 +39,7 @@ @@ -38,6 +39,7 @@
38 /* End PBXCopyFilesBuildPhase section */ 39 /* End PBXCopyFilesBuildPhase section */
39 40
40 /* Begin PBXFileReference section */ 41 /* Begin PBXFileReference section */
  42 + 3236EF111DEEE1C800BF905D /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; };
41 32B4C8581D9B66A400925AF0 /* CNLiveViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveViewController.h; sourceTree = "<group>"; }; 43 32B4C8581D9B66A400925AF0 /* CNLiveViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveViewController.h; sourceTree = "<group>"; };
42 32B4C8591D9B66A400925AF0 /* CNLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveViewController.m; sourceTree = "<group>"; }; 44 32B4C8591D9B66A400925AF0 /* CNLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveViewController.m; sourceTree = "<group>"; };
43 32B4C85B1D9B66E500925AF0 /* StreamerDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerDetailViewController.h; sourceTree = "<group>"; }; 45 32B4C85B1D9B66E500925AF0 /* StreamerDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerDetailViewController.h; sourceTree = "<group>"; };
@@ -60,7 +62,6 @@ @@ -60,7 +62,6 @@
60 32E6CA8A1D5B2AF700B58EBC /* PlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlayerViewController.m; sourceTree = "<group>"; }; 62 32E6CA8A1D5B2AF700B58EBC /* PlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlayerViewController.m; sourceTree = "<group>"; };
61 32E6CA8E1D5B2AF700B58EBC /* StreamerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerViewController.h; sourceTree = "<group>"; }; 63 32E6CA8E1D5B2AF700B58EBC /* StreamerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerViewController.h; sourceTree = "<group>"; };
62 32E6CA8F1D5B2AF700B58EBC /* StreamerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerViewController.m; sourceTree = "<group>"; }; 64 32E6CA8F1D5B2AF700B58EBC /* StreamerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerViewController.m; sourceTree = "<group>"; };
63 - 32F437DE1DC9E03300A074BE /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; };  
64 /* End PBXFileReference section */ 65 /* End PBXFileReference section */
65 66
66 /* Begin PBXFrameworksBuildPhase section */ 67 /* Begin PBXFrameworksBuildPhase section */
@@ -68,7 +69,8 @@ @@ -68,7 +69,8 @@
68 isa = PBXFrameworksBuildPhase; 69 isa = PBXFrameworksBuildPhase;
69 buildActionMask = 2147483647; 70 buildActionMask = 2147483647;
70 files = ( 71 files = (
71 - 32F437DF1DC9E03300A074BE /* CNLivePlayerSDK.framework in Frameworks */, 72 + 3236EF121DEEE1C800BF905D /* CNLivePlayerSDK.framework in Frameworks */,
  73 + 32ACF8B41DEEE1D4003247CD /* CNLivePlayerSDK.framework in Frameworks */,
72 ); 74 );
73 runOnlyForDeploymentPostprocessing = 0; 75 runOnlyForDeploymentPostprocessing = 0;
74 }; 76 };
@@ -78,7 +80,7 @@ @@ -78,7 +80,7 @@
78 32E6CA1D1D5B0AF400B58EBC = { 80 32E6CA1D1D5B0AF400B58EBC = {
79 isa = PBXGroup; 81 isa = PBXGroup;
80 children = ( 82 children = (
81 - 32F437DE1DC9E03300A074BE /* CNLivePlayerSDK.framework */, 83 + 3236EF111DEEE1C800BF905D /* CNLivePlayerSDK.framework */,
82 32E6CA281D5B0AF400B58EBC /* CNLivePlayerSDKTest */, 84 32E6CA281D5B0AF400B58EBC /* CNLivePlayerSDKTest */,
83 32E6CA271D5B0AF400B58EBC /* Products */, 85 32E6CA271D5B0AF400B58EBC /* Products */,
84 ); 86 );
CNLivePlayerSDKTest/CNLivePlayerSDKTest/Streamer/StreamerDetailViewController.m
@@ -140,9 +140,9 @@ @@ -140,9 +140,9 @@
140 _kitCN.activityName = @"iOStest"; 140 _kitCN.activityName = @"iOStest";
141 141
142 [_kitCN startStream:^{ 142 [_kitCN startStream:^{
143 - NSLog(@"success");  
144 - } failure:^(NSError *error) {  
145 - [self toast:error.localizedDescription]; 143 + NSLog(@"开启推流成功 ------- success");
  144 + } failure:^(NSDictionary *errorDic) {
  145 + [self toast:errorDic[@"errorMessage"]];
146 }]; 146 }];
147 147
148 }else{ 148 }else{
@@ -203,55 +203,27 @@ @@ -203,55 +203,27 @@
203 selector:@selector(streamStateChange) 203 selector:@selector(streamStateChange)
204 name:CNLiveStreamStateDidChangeNotification 204 name:CNLiveStreamStateDidChangeNotification
205 object:nil]; 205 object:nil];
206 -  
207 - [[NSNotificationCenter defaultCenter] addObserver:self  
208 - selector:@selector(abnormalState)  
209 - name:CNLiveStreamAbnormalNotification  
210 - object:nil];  
211 -  
212 - [[NSNotificationCenter defaultCenter] addObserver:self  
213 - selector:@selector(streamStopSuccess)  
214 - name:CNLiveStreamStopSuccessNotification  
215 - object:nil];  
216 -  
217 - [[NSNotificationCenter defaultCenter] addObserver:self  
218 - selector:@selector(streamStopFailed)  
219 - name:CNLiveStreamStopFailedNotification  
220 - object:nil];  
221 } 206 }
222 207
223 #pragma mark - notification 208 #pragma mark - notification
224 -- (void)streamStopSuccess  
225 -{  
226 - NSLog(@"---------CNLiveStreamStopSuccess");  
227 -}  
228 -  
229 -- (void)streamStopFailed  
230 -{  
231 - NSLog(@"---------CNLiveStreamStopFailed");  
232 -}  
233 -  
234 - (void)captureStateChange 209 - (void)captureStateChange
235 { 210 {
236 211
237 if ( _kitCN.captureState == CNLiveCaptureStateIdle){ 212 if ( _kitCN.captureState == CNLiveCaptureStateIdle){
238 //初始化时状态为空闲 213 //初始化时状态为空闲
239 - NSLog(@"---------CNLiveCaptureStateIdle");  
240 - _stateLab.text = @"idle"; 214 + _stateLab.text = @"CNLiveCaptureStateIdle";
241 215
242 return; 216 return;
243 } 217 }
244 else if (_kitCN.captureState == CNLiveCaptureStateCapturing ) { 218 else if (_kitCN.captureState == CNLiveCaptureStateCapturing ) {
245 //设备工作中 219 //设备工作中
246 - NSLog(@"---------CNLiveCaptureStateCapturing");  
247 - _stateLab.text = @"capturing"; 220 + _stateLab.text = @"CNLiveCaptureStateCapturing";
248 221
249 return; 222 return;
250 } 223 }
251 else if (_kitCN.captureState == CNLiveCaptureStateClosingCapture ) { 224 else if (_kitCN.captureState == CNLiveCaptureStateClosingCapture ) {
252 //关闭采集设备中 225 //关闭采集设备中
253 - NSLog(@"---------CNLiveCaptureStateClosingCapture");  
254 - _stateLab.text = @"closing capture"; 226 + _stateLab.text = @"CNLiveCaptureStateClosingCapture";
255 227
256 return; 228 return;
257 } 229 }
@@ -279,19 +251,20 @@ @@ -279,19 +251,20 @@
279 251
280 - (void)streamStateChange 252 - (void)streamStateChange
281 { 253 {
  254 +
282 if (_kitCN.streamState == CNLiveStreamStateIdle) { 255 if (_kitCN.streamState == CNLiveStreamStateIdle) {
283 NSLog(@"---------CNLiveStreamStateIdle"); 256 NSLog(@"---------CNLiveStreamStateIdle");
284 - _stateLab.text = @"idle"; 257 + _stateLab.text = @"CNLiveStreamStateIdle";
285 } 258 }
286 259
287 if (_kitCN.streamState == CNLiveStreamStateConnected) { 260 if (_kitCN.streamState == CNLiveStreamStateConnected) {
288 NSLog(@"---------CNLiveStreamStateConnected"); 261 NSLog(@"---------CNLiveStreamStateConnected");
289 - _stateLab.text = [NSString stringWithFormat:@"connected------%@",_hostURL]; 262 + _stateLab.text = [NSString stringWithFormat:@"CNLiveStreamStateConnected------%@",_hostURL];
290 } 263 }
291 264
292 if (_kitCN.streamState == CNLiveStreamStateConnecting) { 265 if (_kitCN.streamState == CNLiveStreamStateConnecting) {
293 NSLog(@"---------CNLiveStreamStateConnecting"); 266 NSLog(@"---------CNLiveStreamStateConnecting");
294 - _stateLab.text = @"kit connecting"; 267 + _stateLab.text = @"CNLiveStreamStateConnecting";
295 } 268 }
296 269
297 //推流出错 270 //推流出错
@@ -303,7 +276,21 @@ @@ -303,7 +276,21 @@
303 //断开推流 276 //断开推流
304 if ( _kitCN.streamState == CNLiveStreamStateDisconnecting) { 277 if ( _kitCN.streamState == CNLiveStreamStateDisconnecting) {
305 NSLog(@"---------CNLiveStreamStateDisconnecting"); 278 NSLog(@"---------CNLiveStreamStateDisconnecting");
306 - _stateLab.text = @"disconnecting"; 279 + _stateLab.text = @"CNLiveStreamStateDisconnecting";
  280 +
  281 + }
  282 +
  283 + //结束推流成功
  284 + if ( _kitCN.streamState == CNLiveStopStreamSuccess) {
  285 + NSLog(@"---------CNLiveStopStreamSuccess");
  286 + _stateLab.text = @"CNLiveStopStreamSuccess";
  287 +
  288 + }
  289 +
  290 + //结束推流成功
  291 + if ( _kitCN.streamState == CNLiveStopStreamFailure) {
  292 + NSLog(@"---------CNLiveStopStreamSuccess");
  293 + _stateLab.text = @"CNLiveStopStreamFailure";
307 294
308 } 295 }
309 } 296 }
@@ -323,8 +310,14 @@ @@ -323,8 +310,14 @@
323 else if ( CNLiveStreamErrorCode_CONNECT_BREAK == err) { 310 else if ( CNLiveStreamErrorCode_CONNECT_BREAK == err) {
324 _stateLab.text = @"Connection break"; 311 _stateLab.text = @"Connection break";
325 } 312 }
  313 + else if ( CNLiveStreamErrorCode_ABNORMAL == err) {
  314 + _stateLab.text = @"Connection break";
  315 + }
326 else { 316 else {
327 - 317 + [self toast:@"推流异常中断~~"];
  318 + NSLog(@"---------推流异常中断~~");
  319 + [_startLiveBtn setTitle:@"开始直播" forState:UIControlStateNormal];
  320 + _startLiveBtn.selected = NO;
328 } 321 }
329 NSLog(@"onErr: %lu [%@]", (unsigned long) err, _stateLab.text); 322 NSLog(@"onErr: %lu [%@]", (unsigned long) err, _stateLab.text);
330 // 断网重连 323 // 断网重连
@@ -336,9 +329,9 @@ @@ -336,9 +329,9 @@
336 if (_isAuthLive) { 329 if (_isAuthLive) {
337 330
338 [_kitCN startStream:^{ 331 [_kitCN startStream:^{
339 - NSLog(@"success");  
340 - } failure:^(NSError *error) {  
341 - [self toast:error.localizedDescription]; 332 + NSLog(@"开启推流成功 ------- success");
  333 + } failure:^(NSDictionary *errorDic) {
  334 + [self toast:errorDic[@"errorMessage"]];
342 }]; 335 }];
343 336
344 }else{ 337 }else{
@@ -348,14 +341,6 @@ @@ -348,14 +341,6 @@
348 } 341 }
349 } 342 }
350 343
351 -- (void)abnormalState  
352 -{  
353 - [self toast:@"推流异常中断~~"];  
354 - NSLog(@"---------推流异常中断~~");  
355 - [_startLiveBtn setTitle:@"开始直播" forState:UIControlStateNormal];  
356 - _startLiveBtn.selected = NO;  
357 -}  
358 -  
359 //对焦 344 //对焦
360 - (void)onTap:(UIGestureRecognizer *)sender 345 - (void)onTap:(UIGestureRecognizer *)sender
361 { 346 {
推流SDK文档.pdf
No preview for this file type
播放SDK文档.pdf
No preview for this file type