pickAudio method
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();
});
}
});
}