An open API service indexing awesome lists of open source software.

https://github.com/felipenicoletto/mediafilesmanager

Simple cross platform plugin to access images and videos on Android and iOS
https://github.com/felipenicoletto/mediafilesmanager

access android cross-platform dot-net files images ios manager media photos plugin thumbnail videos xamarin

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# MediaFilesManager

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](https://www.nuget.org/packages/MediaFilesManager):
```
nuget install MediaFilesManager
```

### API Usage

Call **CrossMediaFileManager.Current.GetAlbumsAsync()**
```csharp
Task GetAlbumsAsync();
```

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

```csharp
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:
```csharp
IMediaFile[] files = album.GetAllMediaFiles(MediaAlbumContentType.Images | MediaAlbumContentType.Videos);
```

Get the file's thumbnail:
```csharp
var file = files[0] as IMediaFileWithImage;

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

Get custom image:
```csharp
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:
```csharp
Stream stream = files[0].GetStream();
```

### Android specific in your BaseActivity or MainActivity (for Xamarin.Forms) add this code:
```csharp
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

- Photos

- Rotated