SkillAgentSearch skills...

MediaFilesManager

Simple cross platform plugin to access images and videos on Android and iOS

Install / Use

/learn @FelipeNicoletto/MediaFilesManager
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MediaFilesManager

<img src="https://img.shields.io/nuget/dt/MediaFilesManager.svg"/>

Simple cross platform plugin to access images and videos on Android and iOS.

Platform Support

|Platform|Version| | ------------------- | :-----------: | |Xamarin.iOS|iOS 8+| |Xamarin.Android|API 14+|

Installing

Install the NuGet package MediaFilesManager:

nuget install MediaFilesManager

API Usage

Call CrossMediaFileManager.Current.GetAlbumsAsync()

Task<IMediaAlbum[]> GetAlbumsAsync();

The result is an array of all device's imagens and videos albums (IMediaAlbum[])

public interface IMediaAlbum
{
    string Title { get; }

    IMediaFile[] GetAllMediaFiles(MediaAlbumContentType contentTypes = MediaAlbumContentType.All);
    
    MediaAlbumContentType GetContentTypes();
    
    IMediaFile GetMediaFileAtIndex(int index, MediaAlbumContentType contentTypes = MediaAlbumContentType.All);
    
    int GetMediaFilesCount(MediaAlbumContentType contentTypes = MediaAlbumContentType.All);
}

Get all images and videos from an album:

IMediaFile[] files = album.GetAllMediaFiles(MediaAlbumContentType.Images | MediaAlbumContentType.Videos);

Get the file's thumbnail:

 var file = files[0] as IMediaFileWithImage;

 ImageStream stream = file.GetImage(MediaFileGetImageOptions.CreateDefaultThumb());

Get custom image:

var file = files[0] as IMediaFileWithImage;

var options = new MediaFileGetImageOptions
{
    Width = 500,
    Height = 500,
    Quality = 90,
    Orientation = MediaFileImageOrientation.Right,                          // Rotate image to right
    ResizeAspect = MediaFileGetImageOptions.ImageResizeAspect.AspectFit     
};

ImageStream stream = file.GetImage(options);

Get the full size file's stream:

Stream stream = files[0].GetStream();

Android specific in your BaseActivity or MainActivity (for Xamarin.Forms) add this code:

using MediaFilesManager;
using Xamarin.Forms;

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);

    global::Xamarin.Forms.Forms.Init(this, bundle);

    MediaFileManager.Initialize(Forms.Context);

    LoadApplication(new App());
}

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
{
    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);

    MediaFileManager.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

Samples

  • Albums

    <img src="https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_1.png" width="280" />
  • Photos

    <img src="https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_2.png" width="280" />
<img src="https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_3.png" width="280" />
  • Rotated <img src="https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_4.png" width="280" />
View on GitHub
GitHub Stars9
CategoryContent
Updated8mo ago
Forks3

Languages

C#

Security Score

82/100

Audited on Jul 26, 2025

No findings