pickAudio method
Implementation
pickAudio(BuildContext context) async {
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}');
Future.delayed(const Duration(seconds: 1), () {
filePath.value = (result.files.single.path!);
sendAudioMessage(filePath.value, false,
duration.inMilliseconds.toString(), context);
});
});
} else {
toToast(Constants.mediaMaxLimitRestriction
.replaceAll("%d", "${Constants.maxAudioFileSize}"));
}
} 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}');
Future.delayed(const Duration(seconds: 1), () {
filePath.value = (value);
sendAudioMessage(filePath.value, false,
duration.inMilliseconds.toString(), context);
});
});
} else {
toToast(Constants.mediaMaxLimitRestriction
.replaceAll("%d", "${Constants.maxAudioFileSize}"));
}
} else {
setOnGoingUserAvail();
}
}).catchError((onError) {
LogMessage.d("openAudioFilePicker", onError);
setOnGoingUserAvail();
});
}
}