Skip to main content
Android Developers
Essentials
  • Build AI experiences
  • Build AI-powered Android apps with Gemini APIs and more.
  • Get started
  • Get started
  • Create your first app. Use Compose for UI and adaptive app development to support multiple device form factors.
  • Hello, world!
  • Developer Verification
  • Adaptive apps
  • Compose for UI
  • AI-powered IDE
  • Training
  • Monetization with Play ↗️
  • Optimize by form factor
  • Build apps that optimize the user experience on phones, tablets, foldables, cars, XR, and more.
  • Phones, tablets, foldables
  • Android for Cars
  • Android TV
  • Android XR
  • Googlebook
  • ChromeOS
  • Wear OS
  • Build by category
  • Learn to build for your use case by following Google's prescriptive and opinionated guidance.
  • Games
  • Camera & media
  • Social & messaging
  • Health & fitness
  • Productivity
  • Enterprise apps
  • Get the latest
  • Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback.
  • Latest updates
  • Experimental updates
  • Android Studio preview
  • Jetpack & Compose libraries
  • Wear OS releases
  • Privacy Sandbox ↗️
Design & Plan
  • Excellent Experiences
  • Build the best experiences for your best users.
  • Learn more
  • UI Design
  • Design a beautiful user interface using Android best practices.
  • Design for Android
  • Mobile
  • Desktop experiences
  • XR Headsets & XR Glasses
  • AI Glasses
  • Widgets
  • Wear OS
  • Android TV
  • Android for Cars
  • Architecture
  • Design robust, testable, and maintainable app logic and services.
  • Introduction
  • Libraries
  • Navigation
  • Modularization
  • Testing
  • Kotlin Multiplatform
  • Quality
  • Plan for app quality and align with Play store guidelines.
  • Overview
  • Core value
  • User experience
  • Accessibility
  • Technical quality
  • Excellent Experiences
  • Security
  • Safeguard users against threats and ensure a secure Android experience.
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
Develop
  • Gemini in Android Studio
  • Your AI development companion for Android development.
  • Learn more
  • Get Android Studio
  • Core areas
  • Get the samples and docs for the features you need.
  • Samples
  • Multidevice support
  • User interfaces
  • Background work
  • Data and files
  • Connectivity
  • All core areas ⤵️
  • Tools and workflow
  • Use the IDE to write and build your app, or create your own pipeline.
  • Write and debug code
  • Build projects
  • Test your app
  • Performance
  • Command-line tools
  • Gradle plugin API
  • Android Bench
  • Device tech
  • Write code for form factors. Connect devices and share data.
  • Phones, tablets, foldables
  • ChromeOS
  • Android for Cars
  • Android TV
  • Android XR
  • Wear OS
  • Android Health
  • Better Together
  • All devices ⤵️
  • Libraries
  • Browse API reference documentation with all the details.
  • Android platform
  • Jetpack libraries
  • Compose libraries
  • Google Play services ↗️
  • Google Play SDK index ↗️
Google Play
  • Play Console
  • Publish your app or game and grow your business on Google Play.
  • Go to Play Console
  • Learn more ↗️
  • Fundamentals
  • Learn how to engage users, monitize, and secure your app.
  • Play Monetization
  • Play Integrity
  • Play Policies
  • Play Programs ↗️
  • Games Dev Center
  • Develop and deliver games. Get tools, downloads, and samples.
  • Overview
  • Play Asset Delivery
  • Play Games Services
  • Play Games on PC
  • Level Up guidelines
  • All Play guides ⤵️
  • Libraries
  • Browse API reference documentation with all the details.
  • Play Feature Delivery
  • Play In-app Updates
  • Play In-app Reviews
  • Play Install Referrer
  • Google Play services ↗️
  • Google Play SDK index ↗️
  • All Play libraries ⤵️
  • Tools & resources
  • Tools for publishing, promoting, and managing your app.
  • Android App Bundles
  • Brand & marketing
  • Play Console APIs ↗️
Blog
  • the Android Developer's Blog
  • Read the latest
  • Explore the authors →
  • Explore categories
  • Product News
    Stay in the loop with the latest updates, feature releases, and behind-the-scenes looks at how we’re evolving.
  • Community
    Discover stories from our users, spotlight features, and the collaborative projects that bring us all together.
  • How-tos
    From quick tips to deep-dive tutorials, these step-by-step guides are designed to help you work smarter and faster.
  • Case Studies
    Real-world results from real-world users. Explore how different teams use our tools to achieve their goals.
  • Events & Programs
    Get the details on upcoming webinars, workshops, meetups, and special initiatives designed to help you grow.
  • Documentation
    Access detailed manuals, API references, and technical specifications to help you build and integrate with confidence.
/
  • English
  • Deutsch
  • Español – América Latina
  • Français
  • Indonesia
  • Italiano
  • Polski
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • עברית
  • العربيّة
  • فارسی
  • हिंदी
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어
Android Studio Sign in
  • Camera & media dev center
Overview Guides Samples Community
Android Developers
  • Essentials
    • More
    • Overview
    • Guides
    • Samples
    • Community
  • Design & Plan
    • More
  • Develop
    • More
  • Google Play
    • More
  • Blog
    • More
  • Android Studio
  • Get started
  • Create a basic media player using ExoPlayer
  • Create a basic video editor using Transformer
  • Codelab: Media streaming with ExoPlayer
  • Codelab: Getting Started with CameraX
  • Add audio and video
    • About audio and video
    • Introduction to Jetpack Media3
    • Media3 MediaSession
      • The Player interface
      • Control and advertise playback using a MediaSession
      • Background playback with a MediaSessionService
      • Serve a content library with a MediaLibraryService
      • Connect to a media app with a MediaController or MediaBrowser
    • Media3 ExoPlayer
      • About Media3 ExoPlayer
      • Getting started
      • Player events
      • Playlists
      • Media items
      • Media sources
      • Track selection
      • Downloading media
      • Preloading media
        • Overview
        • Preload manager concepts
        • Create a preload manager
        • Manage and play content
      • Ad insertion
      • Retrieving metadata
      • Live streaming
      • Network stacks
      • Analytics
      • Media types
        • DASH
        • HLS
        • SmoothStreaming
        • Progressive
        • RTSP
        • Images
      • Advanced topics
        • Digital rights management
        • Common Media Client Data (CMCD)
        • Debug logging
        • Troubleshooting
        • Customization
        • Battery consumption
        • APK shrinking
        • OEM testing
      • Helpful resources
        • Migrating to Media3
          • Migration guide
          • ExoPlayer to Media3 mappings
        • Demo application
        • Supported formats
        • Supported devices
        • Glossary
        • Release notes ⍈
        • Javadoc ⍈
        • GitHub
        • Blog
    • Media3 CastPlayer
      • About CastPlayer
      • Create a media player using CastPlayer
      • Customize CastOptions
    • Media3 Transformer
      • About Media3 Transformer
      • Getting started
      • Demo application
      • Transformations
      • Multi-asset editing
        • Overview
        • Arrange media items in a Composition
        • Preview edits with a CompositionPlayer
      • Tone mapping
      • Supported formats
      • Advanced topics
        • Customization
        • Troubleshooting
      • Release notes ⍈
      • Javadoc ⍈
      • GitHub
      • ExoPlayer Blog
    • Media3 Inspector
      • About Inspector module
      • Retrieve metadata
      • Extract video frames
      • Extract encoded samples
    • Media3 UI
      • Getting started
      • Views UI
        • PlayerView
        • Customization
      • Jetpack Compose UI
        • Getting started
        • Material3 Composables
        • Customization
      • Surface
      • Android TV
    • Jetpack MediaRouter
      • Routing overview
      • Controlling playback output routing
      • Defining playback output routes
    • Platform APIs and behaviors
      • Platform topics overview
      • Media formats
        • Supported media formats
        • Ultra HDR image format specification
        • Motion Photo image format specification
        • MP4 With Auxiliary Tracks Extension (MP4-AT) file format specification
        • Integrate Eclipsa video
        • Optimize audio performance using in-process decoders
        • Record high-quality, low-bitrate audio with xHE-AAC
      • Compatible media transcoding
      • MediaPlayer
        • About media player
        • Get started with Media Player
        • Manage state and resources
        • Background playback
        • Work with Digital Rights Management
        • Retrieve media from a content resolver
      • Controlling amplitude with VolumeShaper
      • Improve audio playback
      • Handling changes in audio output
      • Sharing audio input
      • MediaRecorder overview
      • Capture video and audio playback
    • Legacy media APIs
      • Media app architecture
      • Using a media session
      • Building an audio app
        • About audio apps
        • Building a media browser service
        • Building a media browser client
        • Media session callbacks
      • Building a video app
        • About video apps
        • Building a video player activity
        • Media session callbacks
      • Responding to media buttons
  • Add camera capabilities
    • Get started with camera
    • Camera intents
    • Camera extensions
      • About camera extensions
      • Supported devices
    • Choose a camera library
    • CameraX
      • About CameraX
      • Architecture
      • Configuration
      • Use cases
        • Add an image preview
        • Capture an image
          • Overview
          • Configure for optimization, flash, and file format
          • Zero-Shutter Lag
        • Analyze an image
        • Capture a video
      • Advanced topics
        • Extensions API
        • ML Kit Analyzer
        • Rotations
        • Transform output
      • Devices
      • Camera1 to CameraX migration guide
    • Camera2
      • About Camera2
      • Camera capture sessions and requests
      • Camera lenses and capabilities
      • Use multiple camera streams simultaneously
      • Screen flash implementation guidelines
      • Camera preview
      • HDR video capture
      • Multi-Camera API
      • Extensions API
      • Foldable devices
    • Low light photography and videography
      • Overview
      • Choose the best low light option
      • Low Light Boost AE Mode
      • Google Low Light Boost
        • Overview
        • Concepts
        • Low Light Boost client
        • Low Light Boost session
    • Camera (deprecated)
      • About Camera (deprecated)
      • Take photos (deprecated)
      • Record videos (deprecated)
      • Control the camera (deprecated)
      • Camera API (deprecated)
  • Enhance media with AI
    • Overview
    • Get started
    • Lifecycle in Bitmap mode
    • Lifecycle in Surface mode
  • Extend your app's reach
    • Overview
    • Android form factors
      • Media controls on phones and large screens
      • Design for large screens from the start
      • Extend your media app to Android for Cars
      • Extend your media app to Wear OS
      • Extend your media app to Android TV
      • Google Assistant and media apps
  • Level up your media app
    • Overview
    • Considerations for a best-in-class app
    • Spatial audio
    • Work with HDR
      • Overview
      • HDR video playback
      • Color correct with look-up tables
      • Support Ultra HDR
        • Overview
        • Display Ultra HDR images
        • Edit Ultra HDR images
    • Using picture-in-picture
    • Media projection
  • Optimize for high quality
    • Overview
    • Using the media controller test app
    • Handling audio focus
    • Performance
      • Performance class
      • Measuring performance
      • Choosing the optimal codec using Performance Points
      • Setting an optimal frame rate using the Frame Rate API
    • Best practices for sharing video
  • Build AI experiences
  • Get started
  • Get started
  • Hello, world!
  • Developer Verification
  • Adaptive apps
  • Compose for UI
  • AI-powered IDE
  • Training
  • Monetization with Play ↗️
  • Optimize by form factor
  • Phones, tablets, foldables
  • Android for Cars
  • Android TV
  • Android XR
  • Googlebook
  • ChromeOS
  • Wear OS
  • Build by category
  • Games
  • Camera & media
  • Social & messaging
  • Health & fitness
  • Productivity
  • Enterprise apps
  • Get the latest
  • Latest updates
  • Experimental updates
  • Android Studio preview
  • Jetpack & Compose libraries
  • Wear OS releases
  • Privacy Sandbox ↗️
  • Excellent Experiences
  • Learn more
  • UI Design
  • Design for Android
  • Mobile
  • Desktop experiences
  • XR Headsets & XR Glasses
  • AI Glasses
  • Widgets
  • Wear OS
  • Android TV
  • Android for Cars
  • Architecture
  • Introduction
  • Libraries
  • Navigation
  • Modularization
  • Testing
  • Kotlin Multiplatform
  • Quality
  • Overview
  • Core value
  • User experience
  • Accessibility
  • Technical quality
  • Excellent Experiences
  • Security
  • Overview
  • Privacy
  • Permissions
  • Identity
  • Fraud prevention
  • Gemini in Android Studio
  • Learn more
  • Get Android Studio
  • Core areas
  • Samples
  • Multidevice support
  • User interfaces
  • Background work
  • Data and files
  • Connectivity
  • All core areas ⤵️
  • Tools and workflow
  • Write and debug code
  • Build projects
  • Test your app
  • Performance
  • Command-line tools
  • Gradle plugin API
  • Android Bench
  • Device tech
  • Phones, tablets, foldables
  • ChromeOS
  • Android for Cars
  • Android TV
  • Android XR
  • Wear OS
  • Android Health
  • Better Together
  • All devices ⤵️
  • Libraries
  • Android platform
  • Jetpack libraries
  • Compose libraries
  • Google Play services ↗️
  • Google Play SDK index ↗️
  • Play Console
  • Go to Play Console
  • Learn more ↗️
  • Fundamentals
  • Play Monetization
  • Play Integrity
  • Play Policies
  • Play Programs ↗️
  • Games Dev Center
  • Overview
  • Play Asset Delivery
  • Play Games Services
  • Play Games on PC
  • Level Up guidelines
  • All Play guides ⤵️
  • Libraries
  • Play Feature Delivery
  • Play In-app Updates
  • Play In-app Reviews
  • Play Install Referrer
  • Google Play services ↗️
  • Google Play SDK index ↗️
  • All Play libraries ⤵️
  • Tools & resources
  • Android App Bundles
  • Brand & marketing
  • Play Console APIs ↗️
  • the Android Developer's Blog
  • Read the latest
  • Explore the authors →
  • Explore categories
  • Product News
  • Community
  • How-tos
  • Case Studies
  • Events & Programs
  • Documentation
  • Android Developers
  • Essentials
  • Camera & media dev center
  • Guides

Media items Stay organized with collections Save and categorize content based on your preferences.