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');
    if (data == null) {
      throw CameraException('no state', 'Unable to get stream statistics');
    }
    return StreamStatistics(
      sentAudioFrames: data["sentAudioFrames"],
      sentVideoFrames: data["sentVideoFrames"],
      height: data["height"],
      width: data["width"],
      bitrate: data["bitrate"],
      isAudioMuted: data["isAudioMuted"],
      cacheSize: data["cacheSize"],
      droppedAudioFrames: data["drpppedAudioFrames"],
      droppedVideoFrames: data["droppedVideoFrames"],
    );
  } on PlatformException catch (e) {
    throw CameraException(e.code, e.message ?? 'Unknown exception');
  }
}