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');
}
}