trim method
Future<File>
trim({
- required File inputFile,
- required Directory outputDirectory,
- required String fileName,
- required AudioTrimTime time,
- 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 outputPath = '${outputDirectory.path}/$fileName.${fileType.name}';
switch (defaultTargetPlatform) {
case TargetPlatform.android:
return _trimAudioForAndroid(
inputPath: inputFile.path,
time: time,
outputPath: outputPath,
);
//
case TargetPlatform.iOS:
return _trimAudioForIos(
inputPath: inputFile.path,
time: time,
outputPath: outputPath,
fileType: fileType,
);
default:
throw AudioTrimmerException(
code: 'not_supported',
message: '${defaultTargetPlatform.name} is not supported',
);
}
} 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());
}
}