start method
Implementation
Future<void> start() async {
_outputSubscription?.cancel();
_inputSubscription?.cancel();
_outputSubscription = _outputController.stream.listen((output) {
final outData = ByteData.view(Float64List.fromList(output).buffer);
ServicesBinding.instance.defaultBinaryMessenger
.send(_Channels.audioOutput, outData);
});
ServicesBinding.instance.defaultBinaryMessenger.setMessageHandler(
_Channels.audioInput,
(ByteData? message) {
if (message != null) {
final audioFrame = message.buffer.asFloat64List(message.offsetInBytes,
message.lengthInBytes ~/ _Constants.bytesPerSample);
_inputController.sink.add(audioFrame);
}
return null;
},
);
return _methods.invokeMethod(_Methods.start);
}