Skip to content

Commit 22d303c

Browse files
authoredJan 9, 2021
Allow for initially disabled video tracks (blackuy#435)
1 parent ba59ba0 commit 22d303c

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed
 

‎ios/RCTTWVideoModule.m

+15-12
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ - (void)addParticipantView:(TVIVideoView *)view sid:(NSString *)sid trackSid:(NS
170170
if (self.camera == nil) {
171171
return;
172172
}
173-
self.localVideoTrack = [TVILocalVideoTrack trackWithSource:self.camera enabled:YES name:@"camera"];
173+
self.localVideoTrack = [TVILocalVideoTrack trackWithSource:self.camera enabled:NO name:@"camera"];
174174
}
175175

176176
- (void)startCameraCapture {
@@ -233,19 +233,25 @@ - (void)startCameraCapture {
233233
resolve(@(enabled));
234234
}
235235

236-
RCT_REMAP_METHOD(setLocalVideoEnabled, enabled:(BOOL)enabled setLocalVideoEnabledWithResolver:(RCTPromiseResolveBlock)resolve
237-
rejecter:(RCTPromiseRejectBlock)reject) {
236+
- (bool)_setLocalVideoEnabled:(bool)enabled {
238237
if (self.localVideoTrack != nil) {
239238
[self.localVideoTrack setEnabled:enabled];
240-
if (self.camera && self.camera.device) {
239+
if (self.camera) {
241240
if (enabled) {
242241
[self startCameraCapture];
243242
} else {
244243
[self clearCameraInstance];
245244
}
245+
return enabled;
246246
}
247-
resolve(@(enabled));
248247
}
248+
return false;
249+
}
250+
251+
RCT_REMAP_METHOD(setLocalVideoEnabled, enabled:(BOOL)enabled setLocalVideoEnabledWithResolver:(RCTPromiseResolveBlock)resolve
252+
rejecter:(RCTPromiseRejectBlock)reject) {
253+
bool result = [self _setLocalVideoEnabled:enabled];
254+
resolve(@(result));
249255
}
250256

251257
RCT_EXPORT_METHOD(flipCamera) {
@@ -378,9 +384,7 @@ -(NSMutableDictionary*)convertLocalVideoTrackStats:(TVILocalVideoTrackStats *)st
378384
}
379385

380386
RCT_EXPORT_METHOD(connect:(NSString *)accessToken roomName:(NSString *)roomName enableVideo:(BOOL *)enableVideo encodingParameters:(NSDictionary *)encodingParameters enableNetworkQualityReporting:(BOOL *)enableNetworkQualityReporting) {
381-
if (enableVideo) {
382-
[self startCameraCapture];
383-
}
387+
[self _setLocalVideoEnabled:enableVideo];
384388

385389
TVIConnectOptions *connectOptions = [TVIConnectOptions optionsWithToken:accessToken block:^(TVIConnectOptionsBuilder * _Nonnull builder) {
386390
if (self.localVideoTrack) {
@@ -391,7 +395,6 @@ -(NSMutableDictionary*)convertLocalVideoTrackStats:(TVILocalVideoTrackStats *)st
391395
builder.audioTracks = @[self.localAudioTrack];
392396
}
393397

394-
395398
self.localDataTrack = [TVILocalDataTrack track];
396399

397400
if (self.localDataTrack) {
@@ -409,12 +412,12 @@ -(NSMutableDictionary*)convertLocalVideoTrackStats:(TVILocalVideoTrackStats *)st
409412
NSInteger videoBitrate = [encodingParameters[@"videoBitrate"] integerValue];
410413
builder.encodingParameters = [[TVIEncodingParameters alloc] initWithAudioBitrate:(audioBitrate) ? audioBitrate : 40 videoBitrate:(videoBitrate) ? videoBitrate : 1500];
411414
}
412-
415+
413416
if (enableNetworkQualityReporting) {
414417
builder.networkQualityEnabled = true;
415418
builder.networkQualityConfiguration = [ [TVINetworkQualityConfiguration alloc] initWithLocalVerbosity:TVINetworkQualityVerbosityMinimal remoteVerbosity:TVINetworkQualityVerbosityMinimal];
416419
}
417-
420+
418421
}];
419422

420423
self.room = [TwilioVideoSDK connectWithOptions:connectOptions delegate:self];
@@ -490,7 +493,7 @@ - (void)didConnectToRoom:(TVIRoom *)room {
490493
}
491494
self.localParticipant = room.localParticipant;
492495
self.localParticipant.delegate = self;
493-
496+
494497
[participants addObject:[self.localParticipant toJSON]];
495498
[self sendEventCheckingListenerWithName:roomDidConnect body:@{ @"roomName" : room.name , @"roomSid": room.sid, @"participants" : participants }];
496499

0 commit comments

Comments
 (0)
Failed to load comments.