Перейти к содержанию

Проверка доступности потока на сервере

В сборке iOS SDK 2.6.48 добавлена возможность проверить, доступен ли поток с указанным именем на сервере для воспроизведения, аналогично функции Stream.available() в WebSDK.

Для этого необходимо:

  1. Создать отдельный экземпляр объекта Stream с указанием имени потока, доступность которого должна быть проверена
    Objective C code

         FPWCSApi2Session *session = [FPWCSApi2 getSessions][0];
         FPWCSApi2StreamOptions *options = [[FPWCSApi2StreamOptions alloc] init];
         options.name = _remoteStreamName.text;
         options.display = _remoteDisplay;
         FPWCSApi2Stream *stream = [session createStream:options error:nil];
    
    Swift code
         let options = FPWCSApi2StreamOptions()
         options.name = playName.text;
         options.display = remoteDisplay.videoView;
         do {
             playStream = try session!.createStream(options)
             ...
         } catch {
             print(error)
         }
    

  2. Вызвать метод FPWCSApi2Stream.available() с callback-функцией, которая получает статус доступности потока и информацию о причинах недоступности Objective C code

         [stream available:^(BOOL available, NSString *info) {
             [self changeViewState:button enabled:YES];
             if (available) {
                 _remoteStreamStatus.text = @"AVAILABLE";
                 _remoteStreamStatus.textColor = [UIColor greenColor];
             } else {
                 _remoteStreamStatus.text = info;
                 _remoteStreamStatus.textColor = [UIColor redColor];
    
             }
         }];
    
    Swift code
         ...
         do {
             playStream = try session!.createStream(options)
             playStream?.available({ (available, info) in
                 self.changeViewState(self.availableButton, true)
                 if (available) {
                     self.playStatus.text = "AVAILABLE"
                     self.playStatus.textColor = .green
                 } else {
                     self.playStatus.text = info
                     self.playStatus.textColor = .red
                 }
             })
         } catch {
             print(error)
         }