pickAudio method

dynamic pickAudio(
  1. BuildContext context
)

Implementation

pickAudio(BuildContext context) async {
  AppPermission.getStoragePermission(context).then((permission) async {
    if (permission) {
      setOnGoingUserGone();
      if (Platform.isIOS) {
        FilePicker.platform.pickFiles(
          type: FileType.custom,
          allowedExtensions: [
            'wav',
            'aiff',
            'alac',
            'flac',
            'mp3',
            'aac',
            'wma',
            'ogg'
          ],
        ).then((result) {
          if (result != null &&
              File(result.files.single.path!).existsSync()) {
            debugPrint(result.files.first.extension);
            if (checkFileUploadSize(
                result.files.single.path!, Constants.mAudio)) {
              AudioPlayer player = AudioPlayer();

              player.setSourceDeviceFile(
                  result.files.single.path ?? Constants.emptyString);
              player.onDurationChanged.listen((Duration duration) {
                mirrorFlyLog(Constants.emptyString,
                    'max duration: ${duration.inMilliseconds}');
                filePath.value = (result.files.single.path!);
                sendAudioMessage(filePath.value, false,
                    duration.inMilliseconds.toString(), context);
              });
            } else {
              toToast("File Size should not exceed ${Constants
                  .maxAudioFileSize} MB");
            }
          } else {
            // User canceled the picker
          }
          setOnGoingUserAvail();
        });
      }
    }else{
      await Mirrorfly.openAudioFilePicker().then((value) {
        if(value!=null){
          if (checkFileUploadSize(value, Constants.mAudio)) {
            AudioPlayer player = AudioPlayer();
            player.setSourceDeviceFile(value);
            player.onDurationChanged.listen((Duration duration) {
              mirrorFlyLog("", 'max duration: ${duration.inMilliseconds}');
              filePath.value = (value);
              sendAudioMessage(
                  filePath.value, false, duration.inMilliseconds.toString(), context);
            });
          } else {
            toToast("File Size should not exceed ${Constants.maxAudioFileSize} MB");
          }
        }else{
          setOnGoingUserAvail();
        }
      }).catchError((onError){
        LogMessage.d("openAudioFilePicker",onError);
        setOnGoingUserAvail();
      });
    }
  });
}