import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:video_compress/video_compress.dart';

class VideoConverter {
  /// 将视频转成 mp4 格式（如果本来就是 mp4 则直接返回原路径）
  static Future<String> convertToMp4(String inputPath) async {
    final ext = path.extension(inputPath).toLowerCase();

    // 已经是 mp4，直接返回
    if (ext == '.mp4') {
      return inputPath;
    }

    try {
      print('开始转换: $inputPath');

      // 压缩 + 转换格式（输出文件必然是 mp4）
      final MediaInfo? info = await VideoCompress.compressVideo(
        inputPath,
        quality: VideoQuality.DefaultQuality, // 可调: Low, Medium, High
        deleteOrigin: false, // 是否删除原文件
        includeAudio: true,
      );

      if (info == null || info.path == null) {
        throw Exception('视频转换失败: $inputPath');
      }

      print('转换完成: ${info.path}');
      return info.path!;
    } catch (e) {
      print('视频转换出错: $e');
      rethrow;
    }
  }

  /// 将多个视频批量转换为 mp4
  static Future<List<String>> convertAllToMp4(List<String> videoPaths) async {
    final results = <String>[];
    for (final path in videoPaths) {
      final newPath = await convertToMp4(path);
      results.add(newPath);
    }
    return results;
  }
}
