Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] Port Android MediaElement from Exoplayer to Media3 #1511

Open
8 tasks
brminnick opened this issue Nov 9, 2023 · 7 comments · May be fixed by #2076
Open
8 tasks

[Proposal] Port Android MediaElement from Exoplayer to Media3 #1511

brminnick opened this issue Nov 9, 2023 · 7 comments · May be fixed by #2076
Assignees
Labels
approved This Proposal has been approved and is ready to be added to the Toolkit champion A member of the .NET MAUI Toolkit core team has chosen to champion this feature 📽️ MediaElement Issue/PR that has to do with MediaElement pending documentation This feature requires documentation proposal A fully fleshed out proposal describing a new feature in syntactic and semantic detail

Comments

@brminnick
Copy link
Collaborator

Feature name

Port Android MediaElement from Exoplayer to Media3

Link to discussion

#1400

Progress tracker

  • Android Implementation
  • iOS Implementation
  • MacCatalyst Implementation
  • Windows Implementation
  • Tizen Implementation
  • Unit Tests
  • Samples
  • Documentation

Summary

This Proposal will replace Google's ExoPlayer library with Google's Media3 library for CommunuityToolit.Maui.MediaElement.

Google has provided an official migration guide: https://developer.android.com/guide/topics/media/media3/getting-started/migration-guide

Motivation

Google has officially deprecated ExoPlayer and recommends all developers to move to their new implementation, Media3: https://android-developers.googleblog.com/2023/03/media3-is-ready-to-play.html#:~:text=ExoPlayer%20is%20deprecated%2C%20long%20live%20ExoPlayer!&text=google.,make%20the%20transition%20to%20Media3.

It is unclear which version of Android will cease to support ExoPlayer, but we should prioritize porting MediaElement to Media3 before that happens

Detailed Design

TBD

We are unable to provide a detailed design until we have an Media3 library for .NET MAUI.

Usage Syntax

The public APIs for MediaElement will remain unchanged

Drawbacks

There is not currently a C# Binding for Media3.

I spoke with @martijn00, the owner/maintainer of BaseFlow/XamarinExoPlayer (the NuGet Package that CommunityToolkit.Maui.MediaElement currently uses for ExoPlayer bindings), and he has plans to look into it. Specifically, there is currently an open PR on the XamarinExoPlayer repo adding support for Media3.

I've added the blocked label until a Media3 Binding is available.

Alternatives

There are no alternatives. Media3 is now the only officially supported Media library for Android.

Unresolved Questions

Will XamarinExoPlayer merge the open Media3 Pull Request, or will they create a new library to support Media3?

Will @moljac create a new library for the Media3 bindings? dotnet/android-libraries#710 (comment)

@brminnick brminnick added new blocked proposal A fully fleshed out proposal describing a new feature in syntactic and semantic detail needs discussion Discuss it on the next Monthly standup labels Nov 9, 2023
@moljac
Copy link

moljac commented Nov 10, 2023

Will @moljac create a new library for the Media3 bindings? xamarin/AndroidX#710 (comment)

Moljac was a good boy and started bindings in March:

dotnet/android-libraries#779

I have 1 artifact with approx 50-60 errors to fix. I think this should not be too long.

@vhugogarcia vhugogarcia added the 📽️ MediaElement Issue/PR that has to do with MediaElement label Dec 7, 2023
@brminnick
Copy link
Collaborator Author

Update from @moljac on the Media3 binding:

Almost done. Few weird issues I am investigating, but...

dotnet/android-libraries#779

@moljac
Copy link

moljac commented Mar 4, 2024

Review requested. Publishing expected in next day or two.

@ne0rrmatrix
Copy link
Contributor

dotnet/android-libraries#779 has been merged.

@brminnick brminnick added needs discussion Discuss it on the next Monthly standup and removed blocked labels Jul 30, 2024
@giuseppenovielli
Copy link

@ne0rrmatrix ne0rrmatrix linked a pull request Jul 31, 2024 that will close this issue
6 tasks
@ne0rrmatrix
Copy link
Contributor

about 90 percent done with porting now #2076

@brminnick brminnick added pending documentation This feature requires documentation approved This Proposal has been approved and is ready to be added to the Toolkit champion A member of the .NET MAUI Toolkit core team has chosen to champion this feature and removed new needs discussion Discuss it on the next Monthly standup labels Sep 5, 2024
@ne0rrmatrix
Copy link
Contributor

It is up for review and I am waiting for any requested changes to be requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved This Proposal has been approved and is ready to be added to the Toolkit champion A member of the .NET MAUI Toolkit core team has chosen to champion this feature 📽️ MediaElement Issue/PR that has to do with MediaElement pending documentation This feature requires documentation proposal A fully fleshed out proposal describing a new feature in syntactic and semantic detail
Projects
Development

Successfully merging a pull request may close this issue.

6 participants