xCMD_GetAudio method

Future<File?> xCMD_GetAudio(
  1. void setState(
    1. void ()
    ),
  2. XFDataItem xfDataItem
)

Comando per la Registrazione di un Audio

Implementation

Future<File?> xCMD_GetAudio(void Function(void Function()) setState, XFDataItem xfDataItem) async {
  xfDataItem.isShowDetails = true;
  var idString = xfDataItem.id;
  if ((xMedia_CreateAudio ?? false) || _audioRecorder!.isRecording.not()) {
    xFileUI = File.fromUri(Uri.parse("${XLibStorage.filePath}/AUDIO/${itemInEdit_Clone.id},${idString},${Uuid().v4()}_.aac"));
    await xFileUI!.create(recursive: true);
    await _audioRecorder!.openRecorder();
    await _audioRecorder!.startRecorder(toFile: xFileUI!.path);
  } else {
    await _audioRecorder!.stopRecorder();
    _audioRecorder!.closeRecorder();

    var t = await xFileUI!.readAsBytes();
    await xFileUI!.writeAsBytes(t);
    var res = xFileUI!.readAsBytesSync();
    var xclMedia = XMediaItem(Uuid().v4(), xDocID: idString, blobURL: xFileUI!.path, payload: res, mediaType: XEnums.mediaType.audio.value);
    setState(() => liMediaRAW.add(xclMedia));
  }

  return xFileUI;
}