start method
Implementation
Future<void> start({
required void Function(Float32List chunk, bool isFinal) onChunk,
}) async {
await stop();
_isRecording = true;
_recorder = AudioRecorder();
final hasPerm = await _recorder!.hasPermission();
if (!hasPerm) {
_isRecording = false;
log('Microphone permission not granted on Web.');
return;
}
try {
final stream = await _recorder!.startStream(
const RecordConfig(
encoder: AudioEncoder.pcm16bits,
sampleRate: recordSampleRate,
numChannels: numChannels,
),
);
_subscription = stream.listen((Uint8List chunk) {
if (!_isRecording) return;
final float32 = _pcm16ToFloat32(chunk);
onChunk(float32, false);
});
} catch (e, stack) {
log('AudioProcessor start error: $e\n$stack');
}
}