trim method

  1. @override
Future<File?> trim({
  1. required File inputFile,
  2. required Directory outputDirectory,
  3. required String fileName,
  4. required AudioTrimTime time,
  5. required AudioFileType fileType,
})
override

Implementation

@override
Future<File?> trim({
  required File inputFile,
  required Directory outputDirectory,
  required String fileName,
  required AudioTrimTime time,
  required AudioFileType fileType,
}) async {
  if (Platform.isIOS && fileType == AudioFileType.mp3) {
    throw AudioTrimmerException(
      code: 'unsupported_file_type',
      message: '.mp3 File type is not supported',
    );
  }
  try {
    String? resultPath = await _methodChannel.invokeMethod<String?>(
      'trim',
      <String, dynamic>{
        'input_path': inputFile.path,
        'output_path': '${outputDirectory.path}/$fileName.${fileType.name}',
        'start_time': time.start.inSeconds.toDouble(),
        'end_time': time.end.inSeconds.toDouble(),
        'file_type': fileType.name,
      },
    );
    return resultPath != null ? File(resultPath) : null;
  } on PlatformException catch (e) {
    throw AudioTrimmerException(
      code: e.code,
      message: e.message ?? '',
      details: e.details,
    );
  } catch (e) {
    throw AudioTrimmerException(code: 'unknown_error', message: e.toString());
  }
}