convertAudio method
Future<ConversionResult>
convertAudio({
- required String inputPath,
- required String outputPath,
- required AudioFormat format,
- int bitRate = 128,
- int sampleRate = 44100,
- ProgressCallback? onProgress,
override
Converts an audio file to the specified format
Implementation
@override
Future<ConversionResult> convertAudio({
required String inputPath,
required String outputPath,
required AudioFormat format,
int bitRate = 128,
int sampleRate = 44100,
ProgressCallback? onProgress,
}) async {
final Map<String, dynamic> arguments = {
'inputPath': inputPath,
'outputPath': outputPath,
'format': format.name,
'bitRate': bitRate,
'sampleRate': sampleRate,
};
if (onProgress != null) {
// Set up progress listener
const EventChannel(
'flutter_audio_toolkit/progress',
).receiveBroadcastStream().listen((dynamic data) {
if (data is Map && data['operation'] == 'convert') {
onProgress(data['progress']?.toDouble() ?? 0.0);
}
});
}
final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
'convertAudio',
arguments,
);
final Map<String, dynamic> conversionResult = Map<String, dynamic>.from(
result ?? {},
);
return ConversionResult(
outputPath: conversionResult['outputPath'],
durationMs: conversionResult['durationMs'],
bitRate: conversionResult['bitRate'],
sampleRate: conversionResult['sampleRate'],
);
}