static Size calculateRenderSize()

in lib/utils/screen_util.dart [18:48]


  static Size calculateRenderSize(
    BuildContext context, {
    required Size videoSize,
    required bool isFullScreenMode,
  }) {
    // 获取当前方向和屏幕尺寸
    final screenSize = MediaQuery.of(context).size;
    // logi("calculateRenderSize: screenSize: $screenSize, videoSize: $videoSize");

    // 如果视频尺寸为空或非法,则根据屏幕方向分配默认尺寸
    if (videoSize == Size.zero ||
        videoSize.width <= 0 ||
        videoSize.height <= 0 ||
        videoSize.aspectRatio <= 0) {
      return screenSize;
    }

    // 处理竖屏视频的情况下,调整逻辑
    if (videoSize.height > videoSize.width) {
      return isFullScreenMode
          ? _calculateVerticalFullScreenDimensions(screenSize, videoSize)
          : _calculateVerticalNonFullScreenDimensions(screenSize, videoSize);
    }

    // 计算视频的宽高比
    final aspectRatio = videoSize.aspectRatio;
    // 根据模式选择全屏或非全屏计算逻辑
    return isFullScreenMode
        ? _calculateFullScreenDimensions(screenSize, aspectRatio)
        : _calculateNonFullScreenDimensions(screenSize, aspectRatio);
  }