start method

Future<void> start()

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