# Media3 Xr Media Surface

> Compact planning skill for Android XR media playback surfaces with current-doc verification, immersive layout, controller input, and fallback behavior.

- **Type:** Skill
- **Install:** `agentstack add skill-sunnat629-android-media-pack-media3-xr-media-surface`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [sunnat629](https://agentstack.voostack.com/s/sunnat629)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [sunnat629](https://github.com/sunnat629)
- **Source:** https://github.com/sunnat629/android-media-pack/tree/main/.skills/media/ui/media3-xr-media-surface

## Install

```sh
agentstack add skill-sunnat629-android-media-pack-media3-xr-media-surface
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Trigger

Use for Android XR media playback planning, immersive playback surfaces, spatial/large display behavior, or controller/gesture input questions.

## Rules

- Verify current Android XR docs and available APIs before implementation; XR guidance can move faster than Media3.
- Start with `media3-adaptive-compose-ui` for size classes, then add XR-specific interaction.
- Pin Media3 to `1.10.1` through the version catalog.
- Keep Media3 player/session code in Android source sets.
- Decide embedded vs immersive playback before coding controls.
- For spatial video, render through Jetpack XR SDK SceneCore `SpatialExternalSurface` (or its 180/360 degree variants) with a Media3 `ExoPlayer` attached to the provided surface.
- MV-HEVC spatial video playback requires Media3 1.6.0 or newer; the pinned `1.10.1` satisfies this.
- Make controls usable with controller, hand, gaze, or system input supported by the target XR stack.
- Provide a phone/tablet fallback path if XR APIs are unavailable.

## Example

```toml
media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" }
media3-ui-compose = { module = "androidx.media3:media3-ui-compose", version.ref = "media3" }
```

## Do Not

- Do not pretend XR is just a larger phone layout.
- Do not hard-code immersive behavior without a fallback.
- Do not ship stale XR API names without checking current official docs.

## Related

- `media3-adaptive-compose-ui`
- `media3-compose-ui-material3`
- `media3-video-playback`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [sunnat629](https://github.com/sunnat629)
- **Source:** [sunnat629/android-media-pack](https://github.com/sunnat629/android-media-pack)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-sunnat629-android-media-pack-media3-xr-media-surface
- Seller: https://agentstack.voostack.com/s/sunnat629
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
