androidx / androidx/media

Clarify & potentially change MediaController.Listener.onDisconnected behavior

Open
#2,116 2 comments 0 reactions 1 assignee View on GitHub

@marcbaechinger is already working on this.

Since Feb 10, 2025.

bug needs triage
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

Version

Media3 1.5.1

More version details

No response

Devices that reproduce the issue

N/A

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

I have a common need to observe MediaSession lifecycle (from MediaSession creation to MediaSession.release). A MediaController seems the only way to observe MediaSession.release.

It is not clear from documentation (or my code inspection) whether MediaController.Listener.onDisconnected is called regardless of races between MediaSession.release() and MediaController.Builder.buildAsync, or if it is called even when MediaSession is already released prior to calling buildAsync.

It would be useful to have onDisconnected be called regardless of timing of MediaSession.release: this would essentially provide a singular signal for lifecycle termination.

Currently I always additionally check for !MediaController.isConnected once the buildAsync Future completes, to address potential races. (Plus handling potential Future/Executor exceptions.)

Or perhaps there is a better pattern?

Expected result

N/A

Actual result

N/A

Media

N/A

Bug Report
  • You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.