Trabalhando com áudio no Getx

Em um projeto Flutter estou salvando as imagens dessa forma;


Row(
                children: [
                  Expanded(
                    child: SizedBox(
                      height: 70,
                      child: ElevatedButton(
                        child: Image.asset(AppImages.camera),
                        style: ElevatedButton.styleFrom(
                          padding: EdgeInsets.zero,
                          primary: AppColors.primary,
                        ),
                        onPressed: () async {
                          final _picker = ImagePicker();
                          final file = await _picker.pickImage(
                              source: ImageSource.camera);

                          if (file != null) {
                            controller.image?.value = file.path;
                          }
                        },
                      ),
                    ),
                  ),

E apresentando na tela dessa forma;

 Obx(() {
                return Visibility(
                  visible: controller.image?.value != null &&
                      controller.image?.value != '',
                  child: SizedBox(
                    height: 170,
                    width: double.infinity,
                    child: Image.file(
                      File(controller.image?.value ?? ""),
                      fit: BoxFit.cover,
                    ),
                  ),
                );
              })

Preciso saber como eu poderia fazer para salvar o aúdio no meu controller Getx, como eu poderia fazer?

O botão para gravar o áudio está dessa forma.

 ElevatedButton(
                                      onPressed: () async{
                                        record.value = !record.value;
                                        controller.onRecordPressed();
                                        if(record.value){
                                          timerController.startTime();
                                        } else {
                                          timerController.pauseTimer();
                                          timerController.cleanTimer();
                                        }

                                      },
                                      child: ValueListenableBuilder<bool>(
                                        valueListenable: record, builder: (ctx, snapshot, _){
                                            return Icon(
                                              snapshot
                                                  ? Icons.pause
                                                  : Icons.play_arrow,
                                              color: AppColors.green,
                                            );
                                      },
                                    ),

A linha responsável para gravação é esse

controller.onRecordPressed();