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

Migrating ExoPlayer to androidx.media3.exoplayer #157

Open
ArchangelWTF opened this issue Mar 22, 2023 · 16 comments
Open

Migrating ExoPlayer to androidx.media3.exoplayer #157

ArchangelWTF opened this issue Mar 22, 2023 · 16 comments

Comments

@ArchangelWTF
Copy link
Collaborator

ArchangelWTF commented Mar 22, 2023

So effectively Google has killed off ExoPlayer as it currently stands in favor of Media3 now that Media3 has been fully released. Which means now the question would come of should ExoPlayer in this repository effectively be archived (Due to namespace changes and such) and a new repository be setup for Media3 or should it be continued in this repository?

CC: @martijn00

Former issue(s): #148

@ArchangelWTF ArchangelWTF changed the title Migrating ExoPlayerXamarin to Media3 Migrating ExoPlayer to ExoPlayer.Media3 Mar 22, 2023
@ArchangelWTF ArchangelWTF changed the title Migrating ExoPlayer to ExoPlayer.Media3 Migrating ExoPlayer to androidx.media3.exoplayer Mar 22, 2023
@FreakyAli
Copy link

Personally I would prefer if there is a way to migrate media3! If any help of any sort is needed for the same from my end i would love to take up a task!

@ArchangelWTF
Copy link
Collaborator Author

@martijn00 Since I saw you accepted my PR, did you have a chance to look at this issue yet?

@martijn00
Copy link
Member

I think Microsoft should really do this, but since they don't have any resources or attention to Xamarin I doubt it is going to happen any time soon. The best thing to do for any .NET MAUI or Xamarin developer would be to move to Flutter. The reason not to do that would be if you have to support legacy apps still on Xamarin.

For Exoplayer users looking to migrate to Media3 the best would off course be a smooth transition. It could be done in this repo I think, to ensure that transition. Any thoughts on how to do it?

@ArchangelWTF
Copy link
Collaborator Author

I think it could be possible for this repository to migrate to Media3 (Especially since for Microsoft it would essentially take another decade to create this library) however the current NuGet package structure would be invalid in this repository and would not match the one that's now existent in Maven (https://maven.google.com/web/index.html#androidx.media3) which would probably require Baseflow to make new packages on NuGet.

I've already been toying with bindings for Media3 and it seems most of our current Transforms still apply and work after having their namespaces changed.

@martijn00
Copy link
Member

Ok, lets do it on the branch: media3 that i've just created. If you can PR to that with those changes, I can get the nugets out and everything

@ArchangelWTF
Copy link
Collaborator Author

Alright, so I've taken a break from migrating this library from ExoPlayer to Media3 for a little bit since (re)opening this issue and having the bindings pretty much sit at 55% completion.

I see Microsoft still has not made that much progress binding up Media3, so I've completed the all of the bindings over here and they're pretty much ready to merge apart from a few more things to work out.

One of those things would be for how we push this on NuGet, I'd personally propose we make new packages using a new namespace, and then make a new branch of the current 'develop' so we can still release updates for ExoPlayer (MAUI/Xamarin) if need be. Maybe to include the migration guides to Media3 as all classes in ExoPlayer are now marked deprecated (As of 2.19)

I also would personally prefer ruling out any support for Xamarin.Android with Media3 so that ExoPlayer 2.19 is the last version on that regard, while it is technically possible it's much of a hassle for a platform that people should really be moving to MAUI or other frameworks for.

As for the last thing, I've cleaned up the Metadata of all things Media3 and enabled errors for warnings where the metadata is invalid.. Personally I'd prefer if these warnings as errors stayed as it prevents the clutter that our previous Metadata files were having though it can be a bit annoying when porting the bindings to a newer version.

@ArchangelWTF ArchangelWTF mentioned this issue Sep 4, 2023
4 tasks
@mhdwaelanjo
Copy link

We can use this library now Media3 ExoPlayer SDK for .NET for Android

`
Anjo.Android.Media3.ExoPlayer (>= 1.1.1)
Anjo.Android.Media3.Common (>= 1.1.1)
Anjo.Android.Media3.Container (>= 1.1.1)
Anjo.Android.Media3.Database (>= 1.1.1)
Anjo.Android.Media3.DataSource (>= 1.1.1)
Anjo.Android.Media3.Decoder (>= 1.1.1)
Anjo.Android.Media3.Extractor (>= 1.1.1)

`

@FreakyAli
Copy link

We can use this library now Media3 ExoPlayer SDK for .NET for Android

` Anjo.Android.Media3.ExoPlayer (>= 1.1.1) Anjo.Android.Media3.Common (>= 1.1.1) Anjo.Android.Media3.Container (>= 1.1.1) Anjo.Android.Media3.Database (>= 1.1.1) Anjo.Android.Media3.DataSource (>= 1.1.1) Anjo.Android.Media3.Decoder (>= 1.1.1) Anjo.Android.Media3.Extractor (>= 1.1.1)

`

Are you the one who created them?

@mhdwaelanjo
Copy link

We can use this library now Media3 ExoPlayer SDK for .NET for Android
[Anjo.Android.Media3.ExoPlayer](https://www.nuget.org/packages/Anjo.Android.Media3.ExoPlayer/) (>= 1.1.1) [Anjo.Android.Media3.Common](https://www.nuget.org/packages/Anjo.Android.Media3.Common/) (>= 1.1.1) [Anjo.Android.Media3.Container](https://www.nuget.org/packages/Anjo.Android.Media3.Container/) (>= 1.1.1) [Anjo.Android.Media3.Database](https://www.nuget.org/packages/Anjo.Android.Media3.Database/) (>= 1.1.1) [Anjo.Android.Media3.DataSource](https://www.nuget.org/packages/Anjo.Android.Media3.DataSource/) (>= 1.1.1) [Anjo.Android.Media3.Decoder](https://www.nuget.org/packages/Anjo.Android.Media3.Decoder/) (>= 1.1.1) [Anjo.Android.Media3.Extractor](https://www.nuget.org/packages/Anjo.Android.Media3.Extractor/) (>= 1.1.1)

Are you the one who created them?

Yes

@ArchangelWTF
Copy link
Collaborator Author

ArchangelWTF commented Oct 3, 2023

Media3.ExoPlayer doesn't even contain the correct bindings, it still references to the old ExoPlayer (2.19.1)

image

Why bother when all the work is practically already done here? #166 (And no I'd rather not see this PR published under a different NuGet) If you need Media3 so badly you can just take it from that PR and use it for your projects.

@FreakyAli
Copy link

@ArchangelWTF Do we have a plan or something as to when we will be actually releasing a NuGet for that PR?

@ArchangelWTF
Copy link
Collaborator Author

@FreakyAli If it were up to me it would already be published due to me already using said bindings in internal projects that I have for apps at the company I work for, but since I only have triage rights for this repository I cant say for certain when they'll get approved and everything will be public.

@FreakyAli
Copy link

@ArchangelWTF the reason I ask is because, I wanna create a Videoplayer control for Maui, for both iOS and Android right now so I don't have to wait later on when we actually have a use for it. It will make our lives easier tbh if there is an open source control out there that just works and has features, I kinda don't like the one that community toolkit has it's pretty dull.

Anyway maybe @martijn00 could help us here?

@mhdwaelanjo
Copy link

mhdwaelanjo commented Oct 3, 2023

Media3.ExoPlayer doesn't even contain the correct bindings, it still references to the old ExoPlayer (2.19.1)

image Why bother when all the work is practically already done here? #166 (And no I'd rather not see this PR published under a different NuGet) If you need Media3 so badly you can just take it from that PR and use it for your projects.

yes, right this mistake, I will fix it and again release it.

@mhdwaelanjo
Copy link

we can check the new update for Media3.ExoPlayer 1.1.1.1
@ArchangelWTF

@FreakyAli
Copy link

@ArchangelWTF I guess this can be closed now...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants