# Media Services

Essential Kit's Media Services feature lets Unity teams integrate native camera and gallery functionality without maintaining platform-specific code. This tutorial walks you through setup, key APIs, testing, and troubleshooting so you can add photo capture, media selection, and image saving capabilities with confidence.

{% hint style="info" %}
Using PlayMaker? See the PlayMaker guide: [PlayMaker](/features/media-services/playmaker.md).
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=SI_ZOMxSty4>" %}
Media Services Video Tutorial
{% endembed %}

{% hint style="info" %}
Looking for a working reference? Open the demo scene at `Assets/Plugins/VoxelBusters/EssentialKit/Examples/Scenes/MediaServicesDemo.unity` and the companion script at `Assets/Plugins/VoxelBusters/EssentialKit/Examples/Scripts/MediaServicesDemo.cs` to see the full API in action.
{% endhint %}

## What You'll Learn

* Capture photos and videos using the native camera interface
* Let players select images from their device gallery with permissions handling
* Save game screenshots and generated images to the device gallery
* Handle media content conversion (texture, file, raw data) efficiently

## Why Media Services Matters

* **Player Engagement**: Enable avatar selection, photo sharing, and user-generated content features
* **Social Features**: Power screenshot sharing, in-game photo modes, and community content
* **Technical Simplicity**: Handle complex platform differences automatically (Photo Picker on Android, PHPicker on iOS)

## Tutorial Roadmap

1. [Setup](/features/media-services/setup.md) - Enable the feature and configure platform permissions
2. [Usage](/features/media-services/usage.md) - Camera capture, gallery selection, and saving media
3. [Testing](https://github.com/voxelbusters/essential-kit-docs/blob/master/tutorials/v3/features/media-services/testing.md) - Simulate in editor and verify on devices
4. [FAQ](/features/media-services/faq.md) - Troubleshoot common issues

## Key Use Cases

* **Avatar Selection**: Let players choose profile pictures from their gallery
* **Screenshot Sharing**: Capture and save game moments to device albums
* **Photo Mode**: Build in-game camera features with real device camera integration
* **User Content**: Enable photo uploads for clans, profiles, or creative modes

## Prerequisites

* Unity project with Essential Kit v3 installed and Media Services feature included
* iOS or Android target with camera/gallery usage descriptions configured
* Test device or Essential Kit simulator to validate permission prompts

{% content-ref url="/pages/-MKcrK6S-CpNgdP6pC1T" %}
[Setup](/features/media-services/setup.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MKctS7MSdbD3yfEl0Na" %}
[Usage](/features/media-services/usage.md)
{% endcontent-ref %}

{% content-ref url="<https://github.com/voxelbusters/essential-kit-docs/blob/master/tutorials/v3/features/media-services/testing.md>" %}
<https://github.com/voxelbusters/essential-kit-docs/blob/master/tutorials/v3/features/media-services/testing.md>
{% endcontent-ref %}

{% content-ref url="/pages/-MKd2XDoOBxd0bwXVv8b" %}
[FAQ](/features/media-services/faq.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://assetstore.essentialkit.voxelbusters.com/features/media-services.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
