media_pro library

Classes

AnimatedImageTile
Scale + fade entrance animation for newly added grid items. Used by GridImagePicker when an upload completes.
ApiRequest
This class is used to make API requests.
AudioMessageController
Coordinates one-playing-at-a-time across many AudioMessageTile widgets that share a single AudioPlayerAdapter. Hold one instance per logical audio context (a chat thread, a podcast list) and pass the same instance to every tile.
AudioMessageTile
A play/scrub/duration row for a single audio source. Reads state from a shared AudioMessageController so multiple tiles can't play concurrently.
AudioPickerOptions
Picker behaviour for SingleAudioPicker. Distinct from the visual style.
AudioPickerStyle
Visual style for SingleAudioPicker. Sealed — match exhaustively.
AudioPlayerAdapter
Pluggable backend for audio playback. Implement against your preferred player package (just_audio, audioplayers, flutter_sound, etc.) so media_pro itself stays free of audio-engine dependencies.
AudioRecorderAdapter
Pluggable backend for audio recording. Implement against your preferred recording package (record, flutter_sound, etc.) so media_pro itself stays free of recording-engine dependencies.
CompactImagePickerStyle
Circular thumbnail with an optional edit badge.
CompactVideoPickerStyle
Circular poster with an optional edit badge.
CompressionTier
One quality tier in an ImageCompressionOptions tier list.
CustomAudioPickerStyle
Caller-supplied widget. The builder receives the upload callback so the rendered widget can trigger a pick + upload on tap.
CustomFilePickerStyle
Caller-supplied widget. Receives the upload callback and the picked-file metadata (null until a file is selected) so the rendered widget can show empty state vs filename / size / icon.
CustomImagePickerStyle
Caller-supplied widget. The builder receives the upload callback so the rendered widget can trigger a pick + upload on tap.
CustomVideoPickerStyle
Caller-supplied widget. The builder receives the upload callback so the rendered widget can trigger a pick + upload on tap.
DottedBorder
Cheap dotted-border substitute. Avoids pulling in a dotted-border package just for the placeholder tile.
FilePickerStyle
Visual style for SingleFilePicker. Sealed — match exhaustively.
GridImagePicker
GridImagePicker widget is used to upload and display images in a grid view.
GridVideoPicker
GridVideoPicker — multi-video grid picker. Uses file_picker with FileType.video for multi-pick. No camera support (picking multiple videos via camera doesn't fit the multi-select UX).
ImageCompressionOptions
Configuration for in-place image compression before upload.
ImagePickerStyle
Visual style for SingleImagePicker. Sealed — match exhaustively.
ImageUploader
Tappable widget that opens the image picker and forwards the selected images to the supplied upload callback.
LoadingPlaceholderTile
Pulsing skeleton placeholder shown in empty grid slots during an upload. Used by GridImagePicker.
MediaApiService
MediaLoader
The MediaLoader widget is used in the SingleMediaPicker and GridMediaPicker to show a loader while the image is being uploaded.
MediaPro
MediaPro class
NetworkVideo
Drop-in network video tile — the analogue of CachedNetworkImage for video. Renders the poster up-front, defers player initialization until the user taps play (or autoPlay is true), and shows a play overlay whenever paused.
PendingUploadTile
Local file thumbnail with overlay + circular progress for in-flight uploads. Used by GridImagePicker while uploads are in progress.
PickedFileInfo
Lightweight value object exposing picked-file metadata to widget builders without leaking the underlying file_picker types.
SimpleAudioPickerStyle
Tappable row with a music icon, filename and label.
SimpleFilePickerStyle
Tappable row with a generic file icon, filename and size.
SimpleImagePickerStyle
Centered thumbnail with a label below.
SimpleVideoPickerStyle
Centered poster with a label below.
SingleAudioPicker
SingleAudioPicker widget can be used to upload a single audio file. Two styles are available — see AudioPickerStyle.
SingleFilePicker
SingleFilePicker widget can be used to upload a single arbitrary file. Two styles are available — see FilePickerStyle.
SingleImagePicker
SingleImagePicker widget can be used to upload a single image from the gallery. It can be used in three different styles:
SingleVideoPicker
SingleVideoPicker widget can be used to upload a single video from the gallery or camera. Three styles are available — see VideoPickerStyle.
UploadImageTile
Renders a single image tile in the GridImagePicker grid.
VideoPickerOptions
Picker behaviour for SingleVideoPicker. Distinct from the visual style — these control what the platform picker does, not how the widget renders.
VideoPickerStyle
Visual style for SingleVideoPicker. Sealed — match exhaustively.
VideoPlayerAdapter
Pluggable backend for video playback. Implement against your preferred player package (video_player, chewie, media_kit, etc.) so media_pro itself stays free of video-engine dependencies.
VoiceRecorder
Whatsapp / Telegram-style voice message recorder. Renders an idle mic button that expands into a recording row (timer + waveform + cancel UX) while active. All active states render at intrinsic width, so the widget is safe to place directly in a Row alongside other flex children without giving up bounded constraints.

Enums

MediaProFileType
Type of file the picker accepts. Maps to file_picker's fp.FileType.
RecorderMode
Recording UX style for VoiceRecorder.
RecorderState
UploadMode
Strategy for batch image uploads in GridImagePicker and MediaApiService.
VideoQualityPreset