...
Code Block | ||||
---|---|---|---|---|
| ||||
[room onStateCallback:^(FPWCSApi2Room *room) {
NSDictionary *participants = [room getParticipants];
if ([participants count] >= 2) {
[room leave:nil];
_joinStatus.text = @"Room is full";
[self changeViewState:_joinButton enabled:YES];
return;
}
NSString *chatState = @"participants: ";
for (NSString* key in participants) {
FPWCSApi2RoomParticipant *participant = [participants valueForKey:key];
ParticipantView *pv = [freeViews pop];
[busyViews setValue:pv forKey:[participant getName]];
[participant play:pv.display];
pv.login.text = [participant getName];
chatState = [NSString stringWithFormat:@"%@%@, ", chatState, [participant getName]];
}
...
}];
|
5. Публикация видеопотока.
...
- вид для локального отображения публикуемого потока
- record определяет, необходимо ли записывать виедопоток видеопоток при публикации
Code Block | ||||
---|---|---|---|---|
| ||||
- (void)publishButton:(UIButton *)button { [self changeViewState:button enabled:NO]; if ([button.titleLabel.text isEqualToString:@"STOP"]) { [room unpublish]; } else { FPWCSApi2StreamOptions * options = [[FPWCSApi2StreamOptions alloc] init]; options.record = [_record.control isOn]; publishStream = [room publish:_localDisplay withOptions:options]; ... } } |
...