[MUSIC PLAYING]
SHOBANA RADHAKRISHNAN: Hi.
I'm Shobana, Senior Director of Engineering in the TV org.
Thank you for tuning in to see what
we have been up to with Android TV OS,
our underlying TV operating system, and Google TV, a TV
experience that brings together all your content in one place.
In my family, Friday movie nights are a weekly tradition.
One of our biggest challenges used
to be that we would always spend at least 20 minutes jumping
between apps to see what was new and deciding what to watch.
But now with Google TV, we can easily
browse movies and shows from across our app subscriptions
and view them all in an organized
place based on our interests.
It also gives us new recommendations
so that picking a movie is a quick and easy process.
With more content available today than ever before,
it's no surprise that a third of US households
are watching more than 25 hours of TV per week.
But the role of TV continues to evolve.
While content is still king, there
is so much beyond movies and shows
that people want to have on the largest screen in their house.
We're building an experience that
helps you make the most of the TV
and use it in new and innovative ways,
whether it's to help users stay in the know on the latest
entertainment, turn their living room into a home gym,
or bring together all of their devices
to make their TV a smart home control center.
Over the last year, we are so excited to have seen
continued growth and momentum.
At this year's CES, we announced that Android TV OS now
has over 110 million monthly active devices.
Android TV and Google TV are also available
on over 300 partners worldwide, including
7 out of the 10 largest smart TV OEMs
and over 170 pay TV operators.
In just this year, Sony, TCL, Hisense, and Skyworth
all announced new TVs with Google TV.
So now, the majority of our TVs activated in the US
are with Google TV.
Since our last IO session, we've launched new features
to make Google TV more helpful and bring effortless access
to a user's favorite entertainment.
For example, we're launching Profiles,
so everyone in the home can enjoy their own space.
In a user's profile, they'll get personal recommendations
based on their own interests and be
able to save shows and movies to their own watch list.
Users can also create Kids profiles
to access a fun collection of movies and shows
for the family.
There are parental controls to restrict
what streaming services are shown and limit watching time.
Speaking from personal experience
and having two teenagers in my house,
I find Profiles especially helpful.
We've also integrated Sling and Philo into the Live tab,
so users now have easy access to more premium
live content built directly into the Google TV experience.
To bring more value out of the box,
free live TV channels are also available from Pluto TV
in the Live tab.
So even if a user doesn't have a live TV subscription,
they can still access plenty of content
across more than 300 channels.
In the US, this integration increased
Pluto TV's daily users on Google TV by over 40%.
This momentum would not be possible
without your partnership.
And we look forward to continuing
to bring more live and free content to our users in 2022.
We also know that enjoying TV goes
beyond the big screen at home.
In fact, the average US household now
has over 25 connected devices.
I know in my house, every single room
has multiple connected devices between phones, tablets,
and more.
So we're working hard to make sure
that the biggest screen in the home
works together with other devices.
For example, with Google Assistant built-in,
users can prepare for movie night by dimming the lights
and setting their Nest Thermostat
without ever leaving the couch.
And with the Google TV mobile app,
users are not just able to take Google TV on the go,
but they can also use their phone
to make watching TV easier.
For me, the virtual remote feature
is an absolute lifesaver.
Now, when my remote inevitably disappears,
I can still control the TV directly from my phone.
I can also use my phone's keyboard
to quickly type passwords, movie names, or search terms,
and it is so much easier and faster to do.
Today, we're excited to announce another helpful feature that
brings together user's phone and TV.
Starting soon, users can seamlessly
cast movies, shows, and more from their favorite services
directly from their Google TV app to their TV.
We're also creating a TV experience
tailored for our users with the content they're
most interested in.
But first, we want to thank you for your partnership.
With your help, our app ecosystem
now has more apps available on Android TV OS,
with more being added every day.
We have seen tremendous growth and couldn't
have reached this milestone in providing users
with access to the content they care about without you.
For example, engaging new content
is now available from the developers behind Vivo,
BET Plus, and TikTok.
We're also seeing an emphasis on international markets with
the launch of media and entertainment apps from BBC,
Abema TV, Disney+ Hotstar, Rai, Molotov, and Viaplay.
And last but not least, as we see
more users turn to their big screen for content
beyond traditional media, we love
seeing all the innovative ways developers
are bringing these experiences directly to TV.
Fitness has been a big focus.
With the launch of Beachbody, Equinox+, and FitOn.
Whether our users are watching a trending music video
or taking a yoga class after a long day at work,
you've helped us make the biggest screen in the home
be much more for our users than just movies and shows.
We're excited to see what else we can build together
as we shift towards the next-generation TV experience.
I'll now hand it over to Paul from our Developer Relations
team, who will share several new products, features,
and tools to help you more easily connect with our users.
PAUL LAMMERTSMA: Thank you, Shobana.
Since IO last year, we continued to our commitment
to bring you helpful products and tools that make developing
for Android TV OS easier.
Today, we'll quickly recap Android 12
and discuss how new Android 13 features and validation tools
can help you increase the reach and performance of your apps
in the next generation of devices.
Android 12 for TV focused on four key areas.
First, the frame rate switching API
allows your app to request a specific refresh
rate from the platform, creating a seamless transition
on supported panels.
This feature is great for games, but also for movies and TV
series that have been recorded in different frame rates.
Second, compatible Android TV devices
will begin to support 4K UIs, so it's
important to design responsive layouts that
are compatible with higher-density displays.
As always, your app should not make any assumptions
about screen dimensions.
Third, accessibility continues to be a big focus.
A new feature allows users to adjust the size of text
on their screen, so it's now even more important
to support text scaling on all Android devices.
And lastly, with the launch of Kids profiles,
your app can curate age-appropriate content
and add it to the dedicated Watch Next space,
separate from other profiles.
So if you haven't already, now is a great time
to begin evaluating your TV app for Android 12 compatibility.
This year, the launch of Android 13
is bringing helpful experiences and tools
to allow developers to build native experiences
across a variety of living room configurations.
These experiences will lead to improvements
in performance and quality, accessibility,
and multitasking.
Android 13 includes several new APIs
that improve performance and quality,
including AudioManager, which allows your app
to anticipate audio routes.
By using AudioManager's new Get Direct Playback support,
you're able to understand more precisely
which playback mode is available on the currently
active audio route with a given format and attributes.
With Android 13, you can now check
if a specific combination of audio format and audio
attributes can be offloaded or passed
through for direct playback by the device
with its active route.
If you have an audio format already
for which you'd like to know if direct playback is supported,
you can query getDirectPlaybackSupport.
You may want to fall back to a different format
if it returns DIRECT_PLAYBACK_NOT_SUPPORTED.
But for such cases, we can take a more versatile approach
to identifying audio profile support.
By querying audio profiles before creating an audio track,
we can list only profiles that are directly rendered.
This excludes any profiles that are unsupported or would
be, for instance, transcoded by the Android framework.
Let's build a snippet to see this in action.
We'll be defining a method that finds the best audio format
for the active audio path.
Let's start by handling the default case to simply return
an audio format for PCM.
We can now use the getDirectProfilesForAttributes
to query the supported profiles for the active route.
In this manner, we can check if the active audio path supports
Dolby Digital Plus, falling back to Dolby Digital
if it doesn't, and, finally, falling back to PCM
as the default. Once we know that direct rendering
of the audio profile is supported,
we can create the audio format using a similar trick
to identifying the best sample rate
and channel mask for playback.
Then, only once we have identified all of these parts
do we proceed with creating the audio track.
Another way to improve the quality of our app
is to integrate correctly with media session
and handle lifecycle events accurately.
This allows Android TV to signal that content should
be paused and react to HDMI state changes
in order to save power and signal
that content should be paused.
I'll touch on some media session validation tools in a bit.
As I said, accessibility continues
to be a focus with Android 13.
We've added support for different keyboard layouts.
These changes are reflected in improvements
to the input device API.
As a game developer, you can now reference keys
by their physical location as you
think about supporting different layouts of physical keyboards,
such as quartz or AZERTY keyboards.
When input devices are changed, you could, for instance,
remap directional keys from a non-QWERTY layout
on a physical keyboard.
Here, we see how we can identify which
keys may correspond with a conventional WASD layout.
From an alphabetic keyboard, we can map directional keys
for up, left, down, and right.
Next, a new system-wide accessibility preference
allows users to enable audio descriptions across apps.
Your app can query the new API in Accessibility Manager
to comply with the user's preference.
From the Accessibility Manager, it's
easy to obtain the user's preference
for enabling audio description.
Wherever your media player is initialized, simply
enable captioning if the user has
expressed a preference for the accessibility option
to be enabled.
It's best to also register a listener in case
the user enables this while content is playing.
Remember that Accessibility Services
may toggle settings like this without your user explicitly
leaving your app.
We see that consumers are increasingly
using their TV for more than just watching media content.
That's why we're improving how you can multitask
from the comfort of your couch to continue ongoing calls
or monitor cameras in your smart home.
This is all made possible with the updated
picture-in-picture API that will be supported in Android 13.
This is the same picture-in-picture API
that we currently have for mobile, which supports actions,
automatic entering and exiting, and the mode-changing call back
in your activity or fragment.
Check the developer site to learn
about new ways in which picture-in-picture can be
controlled by your app on TV.
We will be rolling out these features gradually
on supported devices from Android 13 onwards,
and it will be available for select Use cases only.
You can find details about these restrictions on the TV
submission guidelines.
For TV, we can make use of the larger screen
to support a new expanded picture-in-picture mode.
This expanded mode provides a bit more space, for instance,
to allow more participants of a video call
to appear alongside each other.
To do so, let's build off an existing implementation we
might already have for mobile.
For the expanded mode feature, we first
check if the device supports it by inspecting
the respective package manager flag.
Just like setAspectRatio, setExpandedAspectRatio then
allows you to render the contents of your activity
in this expanded mode.
Here, we've defined an aspect ratio
that accommodates all participants of a video call.
When in expanded mode, picture-in-picture defaults
to a dock layout, as to not cover any critical content
of the underlying app.
The underlying app can optionally
choose to opt out of this dock mode
when it makes sense-- for instance,
when browsing content, like we saw earlier.
Let's take a look at a few ways that the underlying app, shown
in yellow here, can affect the picture-in-picture behavior
of another app, shown in blue.
We want apps to make optimal use of the screen, even
in Dock mode.
So that's why apps for TV should be resizable.
By default, apps that do not target Android 13
or declare resizable as false will
be scaled down next to the docked picture in picture.
Here, you can also see how that results in letterboxing.
Apps targeting Android 13 can resize to fill the space
and avoid that letterboxing without being scaled down
by leaving the resizable attribute as its default
value of true.
For cases where apps prefer to remain full-screen
with a picture-in-picture overlay,
developers can specify setShouldDockBigOverlays
to false.
While we strongly recommend making your app's activities
resizable, permitting floating window overlays
is ideal for making optimal use of the screen when
users are browsing content.
If a floating window like the picture-in-picture overlay
would cover parts of the UI that breaks critical functionality
of your app, and which can't be arranged differently on screen,
then developers can define small regions as keep-clear areas
to prevent them from being obscured.
This is useful for ensuring important information
in your app remains visible.
This keep-clear API allows apps to keep
relatively small regions of a screen free of overlays.
On a view, you can either specify
a region of the view or its whole bounds
to be a keep-clear area.
The system will try not to place floating windows above them.
Similarly, you can use the XML attribute
for setting an entire view to be kept clear.
The platform may decide to move or momentarily stash
the floating window depending on the size
of the keep-clear area.
Bear in mind that Android TV will respect focus
attributes to momentarily keep clear areas that receive focus.
In addition to these new platform capabilities
and updated APIs, we're also excited to announce
two improve tools that help you test and validate your apps.
First, the Media Controller Test app
allows you to test the intricacies of media playback
on Android and helps verify your media session implementation.
Its verification testing framework
offers one-click tests that you can
run to ensure that your media app responds correctly
to playback requests, which works
both on mobile devices and TV.
And second, MediaSession Validator
is a tool that provides an easy and automated way
to verify your MediaSession integration on Android TV.
As an added benefit, it also verifies the prerequisites
of supporting Cast Connect in your TV app.
Check out the Android TV adventure here at IO
to learn more about media sessions,
how to increase TV app engagement with the Watch Next
API, best practices for accessibility,
and other great topics for TV.
This content is also available on the Android developer
YouTube channel.
The latest beta release of Android 13 on TV
is now available both as an emulator
and on the ADT-3 Developer Device.
We encourage you to try it and provide us with feedback.
Thank you for your continued support of Android TV OS.
We can't wait to see what an amazing, innovative things
you continue to build for the big screen.
[MUSIC PLAYING]