Skip to end of metadata
Go to start of metadata

В сборке 2.6.110 добавлена возможность получения от сервера сообщений с текущим битрейтом публикации и проигрывания и контроля качества канала, основываясь на разнице битрейтов клиента и сервера.

Чтобы включить возможность контроля качества канала, необходимо использовать метод  WCSStream.enableConnectionQualityCalculation() 

publishStream?.enableConnectionQualityCalculation(true);

Затем необходимо зарегистрировать callback функцию, которая получает на вход показатель качества и текущие значения битрейта клиента и сервера, усредненные фильтром Калмана

publishStream?.onConnectionQualityCallback({currentQuality, clientFiltered, serverFiltered in
    self.updateQualityStatus(currentQuality, view: self.publishQuality);
});

Пример использования:

регистрация обработчика code, обработчик code

@IBOutlet weak var publishQuality: UILabel!
...
publishStream?.enableConnectionQualityCalculation(true);
publishStream?.onConnectionQualityCallback({currentQuality, clientFiltered, serverFiltered in
    self.updateQualityStatus(currentQuality, view: self.publishQuality);
});
...
fileprivate func updateQualityStatus(_ quality:kFPWCSConnectionQuality, view: UILabel) {
    switch (quality) {
    case .fpwcsConnectionQualityBad:
        view.text = "BAD";
        view.textColor = .red;
        break;
    case .fpwcsConnectionQualityGood:
        view.text = "GOOD";
        view.textColor = .yellow;
        break;
    case .fpwcsConnectionQualityPerfect:
        view.text = "PEFRECT";
        view.textColor = .green;
        break;
    case .fpwcsConnectionQualityUnknown:
        view.text = "UNKNOWN";
        view.textColor = .darkText;
    }
}



  • No labels