Stay organized with collections Save and categorize content based on your preferences.
AndroidCast dialog controls
Mini controller
Notification controls
Lock screen controls
iOSCast dialog controls
Mini controller
ChromeCast dialog controls
Mini controller
Sender volume controlsThe sender app must allow users to control the volume of the content playing on the TV or speakers, using the hardware volume buttons and/or software volume slider on the sending device. These control either of the following:
Required
A The sender app must allow users to control the volume of the content playing on the TV or speakers, using the hardware volume buttons and/or software volume slider on the sending device.
On the mobile device the software volume slider must be available in the Cast dialog,
while casting.The volume slider in the sender app must sync with the current Web Receiver volume after connecting to the Web Receiver and stay in sync.
The volume slider in the sender app must reflect volume changes made by other senders or the Chromecast app remote control.
Sender apps should never set volume to a predefined level they should only pass user-initiated volume changes.
Android only: When using the hardware buttons to change the volume level on the Web Receiver, a visual volume slider (with a Cast icon to the left of it) must appear when the hardware volume buttons are pressed. Note: for Android Gingerbread (version 2.3), the Cast icon does not appear.
Best practices
The sender app must provide an expanded controller for the content being cast.
Required
A Identify content being cast by displaying content title or artwork.
B Before playback begins, display a loading indicator and content title or artwork.
C When content starts, identify the Web Receiver state.
D Provide relevant controls.
E At the left end of the seek bar, display the current playback time.
At the right end, display the total duration of the stream if known and if it's not a live stream.
F Hide controls not relevant to casting.
G Do not disconnect or stop the cast when users navigate away from the expanded controller.
H Provide an easy way back to the expanded controller when users navigate away.
Best practices
Sender content loading
Receiver content loading
Sender content playing
Web Receiver playing content
iOSSender content loading
Web Receiver content loading
Sender content playing
Web Receiver playing content
ChromeSender content loading
Web Receiver content loading
Sender content playing
Web Receiver playing content
Sender mini controllerA small, persistent control known as the mini controller should appear, while casting, when the user navigates away from the current content page or expanded controller to another view within the sender app. The mini controller is a visible reminder of the current cast and provides instant access to it.
Required
A A bar or box that displays what's casting appears near the bottom of the sender app. These controls persist while the user browses other content or sections of the app.
B The controls work best when they are simple and communicate what is being cast.
C Available in all screens of the app (except the expanded controller page).
D Tapping on the content area opens the expanded controller.
E Provide any other controls relevant to immediate action.
Best practices
For the best user experience, provide controls in the Cast dialog in addition to the mini controller.
Sender mini controller
Web Receiver content paused
iOSSender mini controller
Web Receiver content paused
ChromeSender mini controller
Web Receiver content paused
Sender notificationRequired (Android only)
A Use the app icon (not the Cast icon) for the notification in the status bar.
B Identify which content is casting. For example, display content title or artwork.
C Identify which Web Receiver is casting.
D Provide basic content controls.
E Provide an "X" to stop casting and disconnect from the Web Receiver, in the row of actions.
F Tapping on the app logo, content title or artwork should open the sender app's expanded controller.
Notes
Sender notification icon
Web Receiver playing content
Sender notification controls
Web Receiver playing content
Sender lock screenRequired (Android only)
A Identify content casting using content title or artwork.
B Identify which Web Receiver is casting. Note, this is not required for Music apps.
C Provide playback controls.
D Provide access to the volume control via hardware buttons.
Required for Android 4.4 KitKat and later versions:
Required for Android 4.3 Jelly Bean:
Notes
MediaSession
or MediaSessionCompat
(for versions 4.4 and 4.3) or Notification
(for 5.0 and later).Sender lock screen controls
Web Receiver playing content
Sender resumes castA connected sender app should restore its connected state after an implicit disconnect (such as a network drop, device going to sleep, or battery dying).
Required
A If the sender app implicitly disconnects (the user did not explicitly stop casting or disconnect), then the casting content should continue playing on the Web Receiver. When the app or connection is restarted, the sender app should restore the connection to the Web Receiver, as long as the Web Receiver session is still current.
B The Cast button should be restored to the connected state.
C If the user taps the Cast button before the sender reconnects, the list of Web Receiver devices is displayed. When the user selects the Web Receiver currently casting, a mini or expanded controller should appear in the sender app.
Notes
The Web Receiver app may also disconnect and stop running, due to a power failure or some other out-of-context interruption. This is treated as an ordinary session end, as described in Sender stops cast.
Selecting the app
Web Receiver playing content
Cast connection restored
Web Receiver playing content
iOSSelecting the app
Web Receiver playing content
Cast connection restored
Web Receiver playing content
Sender stops castContent which is cast to a TV continues playing until either a user chooses Stop Casting or a sender casts something new. When multiple senders are connected to the same Web Receiver, each sender app should have a Disconnect button (instead of a Stop Casting button) in the Cast dialog.
Required
A When multiple senders are connected to a Web Receiver, pressing Stop Casting from one sender app does nothing to the Web Receiver and removes Cast controls and notifications from that sender device. The remaining connected sender device(s) stay connected with Cast controls available.
B When a sender app disconnects implicitly (for example, the sender device battery dies, or the sender device network connection to the Web Receiver drops), it does nothing to the Web Receiver, and removes the Cast controls and notifications from the sender device. The sender app should keep track of implicit disconnections and attempt to reconnect to a Web Receiver when the sender app is opened again.
Cast dialog, disconnect button
Web Receiver playing content
iOSCast dialog, disconnect button
Web Receiver playing content
ChromeCast dialog, disconnect button
Web Receiver playing content
Images used in this design guide are courtesy of the Blender Foundation, shared under copyright or Creative Commons license.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-09-18 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-09-18 UTC."],[[["When casting content, users must always retain control from the sender app, ensuring synchronization between the sender and receiver."],["Sender apps must provide comprehensive Cast controls in designated areas like the Cast dialog, volume controls, and various controller interfaces."],["Volume control should be available through hardware/software, mirroring the Web Receiver's volume and reflecting changes made by other senders."],["An expanded controller should be provided to display content information, playback state, relevant controls, and navigation options, while a mini controller offers persistent access to basic cast functions."],["Android sender apps must implement notifications and lock screen controls to manage casting, while resuming cast and stopping cast functionalities should handle implicit disconnections and multi-sender scenarios appropriately."]]],["When casting content, sender apps must provide controls across various interfaces like the Cast dialog, mini controller, expanded controller, notifications, and lock screen. Users must be able to control content volume via hardware buttons or software sliders, which stay in sync with the Web Receiver. The expanded controller displays content details and provides relevant playback controls. Sender apps also must restore connections after interruptions and manage disconnections without halting content playback. Android and iOS have specific implementation requirements.\n"]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3