getStreamStatistics method

Future<StreamStatistics> getStreamStatistics()

Get statistics about the rtmp stream.

Throws a CameraException if image streaming was not started.

Implementation

Future<StreamStatistics> getStreamStatistics() async {
  if (!value.isInitialized! || _isDisposed) {
    throw CameraException(
      'Uninitialized CameraController',
      'stopImageStream was called on uninitialized CameraController.',
    );
  }
  if (!value.isStreamingVideoRtmp!) {
    throw CameraException(
      'No camera is streaming images',
      'stopImageStream was called when no camera is streaming images.',
    );
  }

  try {
    var data = (await _channel
        .invokeMapMethod<String, dynamic>('getStreamStatistics'))!;
    return StreamStatistics(
      sentAudioFrames: data["sentAudioFrames"] as int?,
      sentVideoFrames: data["sentVideoFrames"] as int?,
      height: data["height"] as int?,
      width: data["width"] as int?,
      bitrate: data["bitrate"] as int?,
      isAudioMuted: data["isAudioMuted"] as bool?,
      cacheSize: data["cacheSize"] as int?,
      droppedAudioFrames: data["droppedAudioFrames"] as int?,
      droppedVideoFrames: data["droppedVideoFrames"] as int?,
      fps: data["fps"] as int?,
      rttMicros: data["rttMicros"] as int?,
      bytesSend: (data["bytesSend"] as num?)?.toInt(),
    );
  } on PlatformException catch (e) {
    throw CameraException(e.code, e.message);
  }
}