cmd_GetAudio method

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

Implementation

Future<File?> cmd_GetAudio(void Function(void Function()) setState, XFDataItem xfDataItem) async {
  xfDataItem.isShowDetails = true;
  var idString = xfDataItem.id;
  if ((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: XEnumsMediaType.audio);
    setState(() => _liMediaRAW.add(xclMedia));
    // dataSendBackEnqueue(MapEntry(DataSendBackService.MsgEnqueueLavoriAudio, xclAudio));
  }

  return xFileUI;
}