Skip to end of metadata
Go to start of metadata

В сборке 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. Вызвать метод 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)
        }
  • No labels