2016-06-11 22 views
1

Ich möchte Bildschirmfreigabe bereitstellen Ein/Aus Funktion in iOS Verwenden Tokbox.Tokbox Bildschirmfreigabe Ein/Aus Toggle in iOS Ziel C

Ich bin in der Lage, auf Gerät Bildschirm teilen zu wechseln, aber nach dem Teilen des Bildschirms kann ich nicht zurück zum Gerät Camara wechseln.

Ich habe es mit dem folgenden Code versucht.

-(void)toogleScreen{ 
    if (isSharingEnable == YES) { 
     isSharingEnable = NO; 
     NSLog(@"%@",_publisher.description); 

     _publisher.videoCapture = nil; 
     [_publisher setVideoType:OTPublisherKitVideoTypeCamera]; 
     _publisher.audioFallbackEnabled = YES; 
    } else { 
     isSharingEnable = YES; 
      [_publisher setVideoType:OTPublisherKitVideoTypeScreen]; 
     _publisher.audioFallbackEnabled = NO; 

     TBScreenCapture* videoCapture = 
     [[TBScreenCapture alloc] initWithView:self.view]; 
     [_publisher setVideoCapture:videoCapture]; 
    } 
} 
+0

Sie haben einen Beschleuniger Pack TU es. https://github.com/opentok/screensharing-annotation-acc-pack –

Antwort

1

Es sieht so aus, als ob Sie beim Abschalten von screencapture möglicherweise keinen Videocapturer einstellen. Diese Zeile:

 _publisher.videoCapture = nil; 

Ist unnötig destruktiv. Versuchen Sie, einen internen Verweis auf die Kamera und Bildschirm Fängern zu halten, und initialisieren sie außerhalb der toggleScreen Funktion:

@implementation MyPublisher { 
    id <OTVideoCapture> _cameraCapture; 
    id <OTVideoCapture> _screenCapture; 
} 

ändern Sie dann Ihre Toggle-Methode, um so etwas wie:

-(void)toogleScreen{ 
    if (isSharingEnable == YES) { 
     isSharingEnable = NO; 
     [_publisher setVideoCapture:_cameraCapture]; 
     [_publisher setVideoType:OTPublisherKitVideoTypeCamera]; 
     _publisher.audioFallbackEnabled = YES; 
    } else { 
     isSharingEnable = YES; 
     [_publisher setVideoCapture:_screenCapture]; 
     [_publisher setVideoType:OTPublisherKitVideoTypeScreen]; 
     _publisher.audioFallbackEnabled = NO;  
    } 
}