trimAudioBytes method
Future<Uint8List>
trimAudioBytes(
- Uint8List inputData,
- String formatHint,
- Duration start,
- Duration end, {
- String outputFormat = 'wav',
override
Implementation
@override
Future<Uint8List> trimAudioBytes(
Uint8List inputData,
String formatHint,
Duration start,
Duration end, {
String outputFormat = 'wav',
}) async {
if (outputFormat == 'm4a') {
throw AudioConversionException(
'M4A encoding is not supported on web',
details: 'Use outputFormat: "wav" instead.',
);
}
try {
final buffer = await _decodeAudioData(inputData);
final sampleRate = buffer.sampleRate;
final startSample = (start.inMilliseconds * sampleRate / 1000).round();
final endSample = min((end.inMilliseconds * sampleRate / 1000).round(), buffer.length);
return _encodeWav(buffer, startSample: startSample, endSample: endSample);
} catch (e) {
if (e is AudioConversionException) rethrow;
throw AudioConversionException('Trim failed: $e');
}
}