maui-media-picker

Select and capture photos and videos in .NET MAUI apps with platform permissions.

Updated Nov 27, 2025
One-click install
npx skills add https://github.com/seydakaratekeli/KamPay3 --skill maui-media-picker-seydakaratekeli
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maui-media-picker
Source: https://github.com/seydakaratekeli/KamPay3/tree/main/KamPay/.github/skills/maui-media-picker%20-%20Kopyala
Command: npx skills add https://github.com/seydakaratekeli/KamPay3 --skill maui-media-picker-seydakaratekeli

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides concrete guidance and best practices to avoid crashes, permission errors, and data loss when picking or capturing photos and videos in .NET MAUI apps.

Core Features & Use Cases

  • Single & Multi-select Picking: Advice for PickPhotoAsync, PickPhotosAsync, PickVideoAsync and PickVideosAsync with SelectionLimit validation.
  • Camera Capture & Guards: Use IsCaptureSupported before CapturePhotoAsync/CaptureVideoAsync to avoid device-specific crashes.
  • Platform Permissions & Saving: Platform-specific manifest/plist requirements (Android API 33 split, Android queries block, iOS Info.plist keys), plus safe FileResult handling and saving streams to app storage.
  • Resource Safety: Emphasizes UI-thread invocation and disposing OpenReadAsync streams to prevent leaks and exceptions.

Quick Start

Use maui-media-picker guidance to implement photo and video selection that runs on the UI thread, validates SelectionLimit, checks IsCaptureSupported, requests platform permissions, and safely disposes FileResult streams when saving to app storage.

Frequently Asked Questions about maui-media-picker

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle permissions when picking photos in .NET MAUI across Android and iOS?

Photo and video picking in .NET MAUI requires configuring platform-specific permissions, including Android API 33 storage changes and iOS Info.plist keys, to prevent permission errors and crashes during media selection.

How do I implement multi-select gallery picking for photos and videos in .NET MAUI?

Multi-select gallery picking in .NET MAUI uses PickPhotosAsync and PickVideosAsync methods, requiring SelectionLimit validation to constrain the number of files users can choose during media selection.

Why does CapturePhotoAsync crash on some devices in my .NET MAUI app?

CapturePhotoAsync crashes occur when device-specific capture capabilities are unsupported. Check IsCaptureSupported before invoking CapturePhotoAsync or CaptureVideoAsync to avoid camera capture failures in .NET MAUI.

What is the best way to save FileResult streams to app storage in .NET MAUI?

Saving FileResult streams in .NET MAUI requires reading the stream via OpenReadAsync, writing to app storage, and properly disposing the stream to prevent memory leaks and file handling exceptions.

Do I need to invoke media picker methods on the UI thread in .NET MAUI?

Media picker methods in .NET MAUI must be invoked on the UI thread to ensure stable execution of PickPhotoAsync, PickVideoAsync, and camera capture operations across Android, iOS, Mac Catalyst, and Windows.

Does .NET MAUI media picker support saving picked files across Android, iOS, Mac Catalyst, and Windows?

The .NET MAUI media picker supports saving picked files across Android, iOS, Mac Catalyst, and Windows by handling platform-specific manifest configurations and safely managing FileResult stream disposal during app workflow integration.