SessionCallback
abstract class SessionCallback
kotlin.Any | |
↳ | androidx.media2.session.MediaSession.SessionCallback |
Callback to be called for all incoming commands from MediaController
s.
If it's not set, the session will accept all controllers and all incoming commands by default.
Summary
Public constructors | |
---|---|
<init>() Callback to be called for all incoming commands from |
Public methods | |
---|---|
open Int |
onCommandRequest(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo, @NonNull command: SessionCommand) Called when a controller sent a command which will be sent directly to one of the following: |
open SessionCommandGroup? |
onConnect(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller is created for this session. |
open MediaItem? |
onCreateMediaItem(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo, @NonNull mediaId: String) Called when a controller has sent a command with a |
open SessionResult |
onCustomCommand(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo, @NonNull customCommand: SessionCommand, @Nullable args: Bundle?) Called when a controller sent a custom command through |
open Unit |
onDisconnected(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller is disconnected. |
open Int |
onFastForward(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller called |
open Unit |
onPostConnect(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called immediately after a controller is connected. |
open Int |
onRewind(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller called |
open Int |
onSetMediaUri(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo, @NonNull uri: Uri, @Nullable extras: Bundle?) Called when a controller requested to set the specific media item(s) represented by a URI through |
open Int |
onSetRating(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo, @NonNull mediaId: String, @NonNull rating: Rating) Called when a controller set rating of a media item through |
open Int |
onSkipBackward(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller called |
open Int |
onSkipForward(@NonNull session: MediaSession, @NonNull controller: MediaSession.ControllerInfo) Called when a controller called |
Public constructors
<init>
SessionCallback()
Callback to be called for all incoming commands from MediaController
s.
If it's not set, the session will accept all controllers and all incoming commands by default.
Public methods
onCommandRequest
open fun onCommandRequest(
@NonNull session: MediaSession,
@NonNull controller: MediaSession.ControllerInfo,
@NonNull command: SessionCommand
): Int
Called when a controller sent a command which will be sent directly to one of the following:
Return SessionResult#RESULT_SUCCESS
to proceed the command. If something else is returned, command wouldn't be sent and the controller would receive the code with it.
Parameters | |
---|---|
session |
MediaSession: the session for this event |
controller |
MediaSession.ControllerInfo: controller information. |
command |
SessionCommand: a command. This method will be called for every single command. |
Return | |
---|---|
Int |
RESULT_SUCCESS if you want to proceed with incoming command. Another code for ignore. |
See Also
SessionCommand#COMMAND_CODE_PLAYER_PLAY
SessionCommand#COMMAND_CODE_PLAYER_PAUSE
SessionCommand#COMMAND_CODE_PLAYER_SKIP_TO_NEXT_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_SKIP_TO_PREVIOUS_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_PREPARE
SessionCommand#COMMAND_CODE_PLAYER_SEEK_TO
SessionCommand#COMMAND_CODE_PLAYER_SKIP_TO_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_SET_SHUFFLE_MODE
SessionCommand#COMMAND_CODE_PLAYER_SET_REPEAT_MODE
SessionCommand#COMMAND_CODE_PLAYER_ADD_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_REMOVE_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_REPLACE_PLAYLIST_ITEM
SessionCommand#COMMAND_CODE_PLAYER_GET_PLAYLIST
SessionCommand#COMMAND_CODE_PLAYER_SET_PLAYLIST
SessionCommand#COMMAND_CODE_PLAYER_GET_PLAYLIST_METADATA
SessionCommand#COMMAND_CODE_PLAYER_UPDATE_LIST_METADATA
SessionCommand#COMMAND_CODE_VOLUME_SET_VOLUME
SessionCommand#COMMAND_CODE_VOLUME_ADJUST_VOLUME
onConnect
@Nullable open fun onConnect(
@NonNull session: MediaSession,
@NonNull controller: MediaSession.ControllerInfo
): SessionCommandGroup?
Called when a controller is created for this session. Return allowed commands for controller. By default it allows all connection requests and commands.
You can reject the connection by return null
. In that case, the controller receives MediaController.ControllerCallback#onDisconnected(MediaController)
and cannot be used.
The controller hasn't connected yet in this method, so calls to the controller (e.g. sendCustomCommand
, setCustomLayout
) would be ignored. Override onPostConnect
for the custom initialization for the controller instead.
Parameters | |
---|---|
session |
MediaSession: the session for this event |
controller |
MediaSession.ControllerInfo: controller information. |
Return | |
---|---|
SessionCommandGroup? |
allowed commands. Can be null to reject connection. |
onCreateMediaItem
@Nullable open fun onCreateMediaItem(
@NonNull session: MediaSession,
@NonNull controller: MediaSession.ControllerInfo,
@NonNull mediaId: String
): MediaItem?
Called when a controller has sent a