Build TV playback apps
Stay organized with collections
Save and categorize content based on your preferences.
Browsing and playing media files is frequently part of the user experience provided by a TV app.
Building such an experience from scratch while making sure that it is fast, fluid, and attractive
can be challenging. Whether your app provides access to a small or large media catalog,
enable users to quickly browse options and get to the content they want.
Topics
- Build UIs with Compose for TV
Note: The Leanback UI toolkit,
which uses views and fragments, is deprecated in favor of Compose.
- Implement a media session
- Use a
MediaSession
to inform Android TV what's playing in your app and let
interactions from outside your app control media.
- Playback controls on TV
- Best practices for creating a consistent playback experience across Android TV
OS.
- Display a Now Playing card
- Use a
MediaSession
to display a Now Playing card on the home
screen.
- Display video previews
- Render a preview video directly on a surface of the
home screen.
- Support Ambient Mode
- Save energy and avoid screen burn issues.
- Match content frame rate
- Manage frame rates using the frame rate API.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-06-20 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
{"lastModified": "Last updated 2024-06-20 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-06-20 UTC."]]