Stay organized with collections
Save and categorize content based on your preferences.
TransferCallback
abstract class TransferCallback
Callback for receiving events on media transfer.
Summary
Public constructors
TransferCallback
TransferCallback()
Public methods
onStop
open fun onStop(controller: MediaRouter2.RoutingController): Unit
Called when a media routing stops. It can be stopped by a user or a provider. App should not continue playing media locally when this method is called. The controller
is released before this method is called.
onTransfer
open fun onTransfer(
oldController: MediaRouter2.RoutingController,
newController: MediaRouter2.RoutingController
): Unit
Called when a media is transferred between two different routing controllers. This can happen by calling transferTo(android.media.MediaRoute2Info)
.
Override this to start playback with newController
. You may want to get the status of the media that is being played with oldController
and resume it continuously with newController
. After this is called, any callbacks with oldController
will not be invoked unless oldController
is the system controller
. You need to release
oldController
before playing the media with newController
.
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 2025-02-10 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 2025-02-10 UTC."],[],[],null,["# MediaRouter2.TransferCallback\n\nAdded in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)\n\nTransferCallback\n================\n\n*** ** * ** ***\n\nKotlin \\|[Java](/reference/android/media/MediaRouter2.TransferCallback \"View this page in Java\") \n\n```\nabstract class TransferCallback\n```\n\n|---|--------------------------------------------------|\n| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||\n| ↳ | [android.media.MediaRouter2.TransferCallback](#) |\n\nCallback for receiving events on media transfer.\n\nSummary\n-------\n\n| Public constructors ||\n|----------------------------------------------------|---|\n| [TransferCallback](#TransferCallback())`()` \u003cbr /\u003e |\n\n| Public methods ||\n|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onStop](#onStop(android.media.MediaRouter2.RoutingController))`(`controller:` `[MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController)`)` Called when a media routing stops. |\n| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onTransfer](#onTransfer(android.media.MediaRouter2.RoutingController,%20android.media.MediaRouter2.RoutingController))`(`oldController:` `[MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController)`, `newController:` `[MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController)`)` Called when a media is transferred between two different routing controllers. |\n| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onTransferFailure](#onTransferFailure(android.media.MediaRoute2Info))`(`requestedRoute:` `[MediaRoute2Info](/reference/kotlin/android/media/MediaRoute2Info)`)` Called when [transferTo(android.media.MediaRoute2Info)](/reference/kotlin/android/media/MediaRouter2#transferTo(android.media.MediaRoute2Info)) failed. |\n\nPublic constructors\n-------------------\n\n### TransferCallback\n\n```\nTransferCallback()\n```\n\nPublic methods\n--------------\n\n### onStop\n\nAdded in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nopen fun onStop(controller: MediaRouter2.RoutingController): Unit\n```\n\nCalled when a media routing stops. It can be stopped by a user or a provider. App should not continue playing media locally when this method is called. The `controller` is released before this method is called.\n\n| Parameters ||\n|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `controller` | [MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController): the controller that controlled the stopped media routing This value cannot be `null`. |\n\n### onTransfer\n\nAdded in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nopen fun onTransfer(\n oldController: MediaRouter2.RoutingController, \n newController: MediaRouter2.RoutingController\n): Unit\n```\n\nCalled when a media is transferred between two different routing controllers. This can happen by calling [transferTo(android.media.MediaRoute2Info)](/reference/kotlin/android/media/MediaRouter2#transferTo(android.media.MediaRoute2Info)).\n\nOverride this to start playback with `newController`. You may want to get the status of the media that is being played with `oldController` and resume it continuously with `newController`. After this is called, any callbacks with `oldController` will not be invoked unless `oldController` is the [system controller](/reference/kotlin/android/media/MediaRouter2#getSystemController()). You need to [release](/reference/kotlin/android/media/MediaRouter2.RoutingController#release()) `oldController` before playing the media with `newController`.\n\n| Parameters ||\n|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `oldController` | [MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController): the previous controller that controlled routing This value cannot be `null`. |\n| `newController` | [MediaRouter2.RoutingController](/reference/kotlin/android/media/MediaRouter2.RoutingController): the new controller to control routing This value cannot be `null`. |\n\n**See Also**\n\n- [#transferTo(MediaRoute2Info)](/reference/kotlin/android/media/MediaRouter2#transferTo(android.media.MediaRoute2Info)) \n\n### onTransferFailure\n\nAdded in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nopen fun onTransferFailure(requestedRoute: MediaRoute2Info): Unit\n```\n\nCalled when [transferTo(android.media.MediaRoute2Info)](/reference/kotlin/android/media/MediaRouter2#transferTo(android.media.MediaRoute2Info)) failed.\n\n| Parameters ||\n|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| `requestedRoute` | [MediaRoute2Info](/reference/kotlin/android/media/MediaRoute2Info): the route info which was used for the transfer This value cannot be `null`. |"]]