page.title=Building TV Channels page.tags=tv, tif helpoutsWidget=true startpage=true @jd:body

Dependencies and Prerequisites

You should also read

Try It Out

Watching live TV shows and other continuous, channel-based content is a big part of the TV experience. Users are accustomed to selecting and watching shows on TV by channel browsing. To provide your users a similar experience, use the TV Input Framework to create channels for publishing video or music content so that your media appears alongside traditional TV channels in the programming guide.

Android supports receiving and playback of live video content through the TV Input Framework in Android 5.0 (API level 21). This framework provides a unified method for receiving audio and video channel content from hardware sources, such as HDMI ports and built-in-tuners, and software sources, such as video streamed over the internet.

The framework enables developers to define live TV input sources by implementing a TV input service. This service publishes a list of channels and programs to the TV Provider. The live TV app on a TV device gets the list of available channels and programs from the TV Provider and displays them to a user. When a user selects a specific channel, the live TV app creates a session for the associated TV input service through the TV Input Manager, and tells the TV input service to tune to the requested channel and play the content to a display surface provided by the TV app.

Figure 1. Functional diagram of the TV Input Framework

The TV Input Framework is designed to provide access to a wide variety of live TV input sources and bring them together in a single user interface for users to browse, view, and enjoy content. Building a TV input service for your content can help make it more accessible on TV devices.

Topics

Developing a TV Input Service
Learn how to develop a TV input service, which works with the system TV app.
Working with Channel Data
Learn how to describe channel and program data for the system.
Managing User Interaction
Learn how to present overlays, manage content availability, and handle content selection.