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

[BUG] - MediaElement DisconnectHandler Crash Android App #2195

Open
2 tasks done
jhovelnu opened this issue Sep 10, 2024 · 34 comments
Open
2 tasks done

[BUG] - MediaElement DisconnectHandler Crash Android App #2195

jhovelnu opened this issue Sep 10, 2024 · 34 comments
Labels
bug Something isn't working 📽️ MediaElement Issue/PR that has to do with MediaElement unverified

Comments

@jhovelnu
Copy link

jhovelnu commented Sep 10, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Did you read the "Reporting a bug" section on Contributing file?

Current Behavior

Calling the DisconnectHandler of the mediaElement:

protected override async void OnDisappearing()
{
base.OnDisappearing();

// Stop and cleanup MediaElement when we navigate away
if (uxMediaElement.IsVisible)
{
    await Task.Delay(500); //This is to avoid crash Disposed object 
    uxMediaElement.Handler?.DisconnectHandler();
}

}

With the Version 4.0.1 this code was working well, i had to add the Delay because the app crashes.

But with the last version 4.1.0 my app always crashing when i call the DisconnectHandler method, i have tried to remove the Delay and use the Unloaded event of the Content Page but the error still ocurrs.

Expected Behavior

The DisconnectHandler working well without app crash

Steps To Reproduce

1 - Add the Toolkit:MediaElement to a Page
2 - Configure any video file to reproduce
3 - Navigate to other page
4 - Call the DisconnectHandler in the page (Step 2)
5 - Then the app crash

Link to public reproduction project repository

https://github.com/jhovelnu/MauiApp1/tree/MediaElement_Test

Environment

- .NET MAUI CommunityToolkit:4.1.0
- OS: Android
- .NET MAUI: 8.0.82

Anything else?

No response

@jhovelnu jhovelnu added bug Something isn't working unverified labels Sep 10, 2024
@dotnet-policy-service dotnet-policy-service bot added the stale The author has not responded in over 30 days label Sep 16, 2024
@jhovelnu
Copy link
Author

jhovelnu commented Sep 18, 2024

Hi this is the repo to test.

https://github.com/jhovelnu/MauiApp1/tree/MediaElement_Test

However i couldnt reproduce this error in the test project.

But i found something.

In the Test project when i play the video:

image

But when i play a video in my real project i see this:

image

Could this be the cause of the error?

This is the stack trace in app center:

System.ObjectDisposedException
System.ObjectDisposedException: Cannot access a disposed object. Object name: 'CommunityToolkit.Maui.Core.Views.MauiMediaElement'.

Java.Interop.JniPeerMembers.AssertSelf(IJavaPeerable self)
Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters)
Android.Views.ViewGroup.RemoveView(View view)
Microsoft.Maui.WindowOverlay.DeinitializePlatformDependencies()
Microsoft.Maui.WindowOverlay.Deinitialize()
Microsoft.Maui.VisualDiagnosticsOverlay.Deinitialize()
Microsoft.Maui.Handlers.WindowHandler.OnRootViewChanged(Object sender, EventArgs e)
Microsoft.Maui.Platform.NavigationRootManager.OnWindowContentPlatformViewCreated()
Microsoft.Maui.Platform.NavigationRootManager.ElementBasedFragment.OnViewCreated(View view, Bundle savedInstanceState)
AndroidX.Fragment.App.Fragment.n_OnViewCreated_Landroid_view_View_Landroid_os_Bundle_(IntPtr jnienv, IntPtr native__this, IntPtr native_view, IntPtr native_savedInstanceState)
Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLL_V(_JniMarshal_PPLL_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0, IntPtr p1)

@brminnick brminnick removed stale The author has not responded in over 30 days needs reproduction labels Sep 18, 2024
@ne0rrmatrix
Copy link
Contributor

That repository does not exist

@jhovelnu
Copy link
Author

Sorry @ne0rrmatrix the repository was private, i have changed it to public already

@ne0rrmatrix
Copy link
Contributor

Your android manifest is missing some requirements. Can you look at this page: https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/views/mediaelement?tabs=android and update the manifest with missing data. Please update the https://github.com/jhovelnu/MauiApp1/blob/MediaElement_Test/Platforms/Android/MainActivity.cs with ResizeableActivity = true,.

@jhovelnu
Copy link
Author

@ne0rrmatrix

Hi, it's true that some things are missing in the MainActivity and the Manifest compared to the documentation. However, in the test project I shared, I haven't been able to replicate the error that does occur in my production application, and it happens when a new MainPage is set.

In the test project, I tried to recreate the processes I perform in my production application, but the error does not replicate. Therefore, it is challenging to provide an explanation of what might be happening.

Additionally, in my production project, I already tested adding the missing information to the Manifest and MainActivity, but the error persists.

I will continue testing and investigating what might be causing the error, and if I find the cause, I will share it in this same thread.

@Pmr-precure
Copy link

Pmr-precure commented Sep 19, 2024

I dont know if this is relevant, but after updating 4.1.1 im starting to get this crash in production:
image

image

And we dont care about the foreground service at all, we just show some introduction videos.

** Update, it just happend on version 4.0.1 aswell.

br.

@Pmr-precure
Copy link

@ne0rrmatrix

Hi, it's true that some things are missing in the MainActivity and the Manifest compared to the documentation. However, in the test project I shared, I haven't been able to replicate the error that does occur in my production application, and it happens when a new MainPage is set.

In the test project, I tried to recreate the processes I perform in my production application, but the error does not replicate. Therefore, it is challenging to provide an explanation of what might be happening.

Additionally, in my production project, I already tested adding the missing information to the Manifest and MainActivity, but the error persists.

I will continue testing and investigating what might be causing the error, and if I find the cause, I will share it in this same thread.

https://github.com/Pmr-precure/MediaElementDispose.git
Can you try clone this and test? Just press the button a couple of time and see it crashes.

BR.

@Pmr-precure
Copy link

Sorry for spamming your thread, but ive done some testing, and this is what i got:
https://github.com/Pmr-precure/MediaElementDispose.git
This will crash when changing mainpage. Adding a delay before disposing seems to fix this?

But then adding ForegroundService + delay seems to cause:
image
Try this sample:
https://github.com/Pmr-precure/MediaElementDispose/tree/withForegroundAndDelay

In our app we use a foreground service to monitor some BLE devices. And videos are just tutorials.

@ne0rrmatrix
Copy link
Contributor

Sorry for spamming your thread, but ive done some testing, and this is what i got:
https://github.com/Pmr-precure/MediaElementDispose.git
This will crash when changing mainpage. Adding a delay before disposing seems to fix this?

But then adding ForegroundService + delay seems to cause:
image
Try this sample:
https://github.com/Pmr-precure/MediaElementDispose/tree/withForegroundAndDelay

In our app we use a foreground service to monitor some BLE devices. And videos are just tutorials.

I looked at your sample. It is missing the required permissions and service in the android manifest. Please look at the instructions here: https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/views/mediaelement?tabs=android

@Pmr-precure
Copy link

Sorry for spamming your thread, but ive done some testing, and this is what i got:
https://github.com/Pmr-precure/MediaElementDispose.git
This will crash when changing mainpage. Adding a delay before disposing seems to fix this?
But then adding ForegroundService + delay seems to cause:
image
Try this sample:
https://github.com/Pmr-precure/MediaElementDispose/tree/withForegroundAndDelay
In our app we use a foreground service to monitor some BLE devices. And videos are just tutorials.

I looked at your sample. It is missing the required permissions and service in the android manifest. Please look at the instructions here: https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/views/mediaelement?tabs=android

I updated the samples and added the permissions + service. But its still the same.

@Pmr-precure
Copy link

Pmr-precure commented Sep 23, 2024

The dispose "bug" only seems happen when using App.Current.Mainpage = new page, going from 1 page with a MediaElement to a new page.

Probably an issue in the MAUI core when setting the MainPage it will try to access the old one again? dunno. But setting the delay seems to do the job.

@Pmr-precure
Copy link

Pmr-precure commented Sep 24, 2024

@ne0rrmatrix
I did some more digging, and the error happens in the RemoveView method in Microsoft.Maui core.
image

image

The "bug" would be fixed if there was a try catch like ive done. But no idea if that would be fine.
So it seems like its trying to remove the already disposed MediaElement.

@ne0rrmatrix
Copy link
Contributor

I'm currently migrating media element to media 3 library. If you can test against this PR: #2076 it would be appreciated. Any fix applied and merged to main would unlikely ever make it to a Nuget for current media 2 version. Any feedback on PR would be appreciated. Oh and if u remove the permissions for notifications it should just not start the service now. So if you want to disable notifications it will just disable service.

@Pmr-precure
Copy link

Pmr-precure commented Sep 24, 2024

I'm currently migrating media element to media 3 library. If you can test against this PR: #2076 it would be appreciated. Any fix applied and merged to main would unlikely ever make it to a Nuget for current media 2 version. Any feedback on PR would be appreciated. Oh and if u remove the permissions for notifications it should just not start the service now. So if you want to disable notifications it will just disable service.

Great! Ill test right away.

"Oh and if u remove the permissions for notifications it should just not start the service now. So if you want to disable notifications it will just disable service" - But in our case, we already have a foreground permission since we use it for some BLE stuff, so we have no way of disabling this right? (Probably not a big deal anyways but.)

@Pmr-precure
Copy link

@ne0rrmatrix Your PR did the trick with the ForegroundDidNotStartInTime exception! yay.

It didnt fix the "Cannot access disposed object", but putting a delay before the disconnecthandler fixes that. Since then it wont be disposed before the removeView gets called.

Thanks for your great work.

@ne0rrmatrix
Copy link
Contributor

I'm currently migrating media element to media 3 library. If you can test against this PR: #2076 it would be appreciated. Any fix applied and merged to main would unlikely ever make it to a Nuget for current media 2 version. Any feedback on PR would be appreciated. Oh and if u remove the permissions for notifications it should just not start the service now. So if you want to disable notifications it will just disable service.

Great! Ill test right away.

"Oh and if u remove the permissions for notifications it should just not start the service now. So if you want to disable notifications it will just disable service" - But in our case, we already have a foreground permission since we use it for some BLE stuff, so we have no way of disabling this right? (Probably not a big deal anyways but.)

If you create a discussion with a feature request to add the ability to disable notifications I will look at it. It is a feature I think would be a good idea. If you can get 10 up-votes in the next day or two I will start getting it ready and try and talk to the team about adding it. Up-voting features lets me push things through easier.

@vhugogarcia vhugogarcia added the 📽️ MediaElement Issue/PR that has to do with MediaElement label Sep 30, 2024
@jhovelnu
Copy link
Author

jhovelnu commented Oct 24, 2024

@Pmr-precure @ne0rrmatrix

Hello, hasn't this issue been resolved yet? In my case, even though a 'Delay' is configured, in some scenarios it doesn't work and the application closes.

In my production application, there are more than 2000 user errors where the application crashes due to this issue.

Is there any workaround other than using Delay?

Image

Image

@ne0rrmatrix
Copy link
Contributor

Can you check and see if this PR fixes your issue? #2076 If it does not can you get back to me.

@RobbiewOnline
Copy link

Hi,

I’m experiencing crashes related to MauiMediaElement in the following setup:

Environment:

  • Package: <PackageReference Include="CommunityToolkit.Maui.MediaElement" Version="4.1.2" />
  • Android Version: Android 12 (SDK 31)
  • Device: OPPO OP4C41L1 (X2 Lite)

Usage Details:

  • I’m using MauiMediaElement in two pages (LoneWorkingPage and PreferencesPage) to play local MP3 files embedded in the app. The MediaElement is not visible as it’s solely used to play sounds without user interaction.

  • The crash seems to occur when the user resumes the app after some time.

  • Sentry.io breadcrumbs show the app has been running for 45m+, the app is backgrounded (it runs a background service for GPS capture) and then some time later the user resumes the app. App CreateWindow is invoked and because we are resuming I've been advised to return back the same existing Window object rather than create a new one (Android goes ANR otherwise). The LoneWorkingPage PageAppearing method is logged 53ms before the Exception which causes a crash is raised System.ObjectDisposedException: ObjectDisposed_Generic ObjectDisposed_ObjectName_Name, CommunityToolkit.Maui.Core.Views.MauiMediaElement

Permissions:

•	I initially missed adding permissions to the manifest, but it worked on test devices without them. Since encountering the crash, I’ve added the following permissions as a test, but I’m unsure if they’re necessary for local audio playback and am hesitant to request unnecessary permissions:

Additional Settings:

  • I’ve also added ResizeableActivity = true but am unsure if this impacts the issue.

Expected Behavior:

  • Sound should play without interaction and without crashes after resuming the app.

Observed Behavior:

  • App crashes when resuming the app and the LoneWorkingPage is navigated to.

Steps to Reproduce:

1.	Open `LoneWorkingPage` with MediaElement for audio playback.
2.	Run the app as a background service
3.	Observe crash upon resumption of the app which navigated back to the `LoneWorkingPage`

Exception Stack Trace:
(condensed for readability)

Exception android.runtime.JavaProxyThrowable: [System.ObjectDisposedException]: ObjectDisposed_Generic
ObjectDisposed_ObjectName_Name, CommunityToolkit.Maui.Core.Views.MauiMediaElement
  at Java.Interop.JniPeerMembers.AssertSelf + 0x29
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod + 0x0
  at Android.Views.ViewGroup.RemoveView + 0x31
  at Microsoft.Maui.WindowOverlay.DeinitializePlatformDependencies + 0x3f
  at Microsoft.Maui.WindowOverlay.Deinitialize + 0x0
  at Microsoft.Maui.VisualDiagnosticsOverlay.Deinitialize + 0x18
  at Microsoft.Maui.Handlers.WindowHandler.OnRootViewChanged + 0x43
  at Microsoft.Maui.Platform.NavigationRootManager.OnWindowContentPlatformViewCreated + 0xa
  at Microsoft.Maui.Platform.NavigationRootManager+ElementBasedFragment.OnViewCreated + 0xe
  at AndroidX.Fragment.App.Fragment.n_OnViewCreated_Landroid_view_View_Landroid_os_Bundle_ + 0x17
  at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLL_V + 0x5
  at crc6452ffdc5b34af3a0f.NavigationRootManager_ElementBasedFragment.n_onViewCreated
  at crc6452ffdc5b34af3a0f.NavigationRootManager_ElementBasedFragment.onViewCreated (NavigationRootManager_ElementBasedFragment.java:36)
  at androidx.fragment.app.Fragment.performViewCreated (Fragment.java:3152)
  at androidx.fragment.app.FragmentStateManager.createView (FragmentStateManager.java:608)
  at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:286)
  at androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:2164)
  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:2065)
  at androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:2002)
  at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:3277)
  at androidx.fragment.app.FragmentManager.dispatchActivityCreated (FragmentManager.java:3187)
  at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java:263)
  at androidx.fragment.app.FragmentActivity.onStart (FragmentActivity.java:350)
  at androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:251)
  at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1470)
  at android.app.Activity.performStart (Activity.java:8170)
  at android.app.ActivityThread.handleStartActivity (ActivityThread.java:3806)
  at android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:221)
  at android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:201)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:173)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2348)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:233)
  at android.os.Looper.loop (Looper.java:344)
  at android.app.ActivityThread.main (ActivityThread.java:8191)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:584)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1034)

Could you advise if the permissions and ResizeableActivity setting are essential here (for local sounds only), or if there’s another approach to ensure stability with MediaElement in this scenario?

Here's an example of my XAML (same in both views)

<toolkit:MediaElement x:Name="mediaElementControlInXaml" HandlerProperties.DisconnectPolicy="Manual" ShouldAutoPlay="false" IsVisible="false"/>

I then reference that in my ViewModel to play a sound.

When the app is running as a background service the MAUI Window and my associated View and ViewModels are still instantiated, so I'd like to ensure the MediaElement doesn't lose it's native reference when backgrounded/resumed.

Kind Regards,

Rob.

@mjmeans
Copy link

mjmeans commented Dec 18, 2024

I'm having a similar experience with MediaElement 4.1.2. In my case, AppShell has a TabBar instead of a ShellContent. The TabBar navigates to a home page, settings page and browse page. The browse page has some navigation to from a main group to a subgroup to an item detail page. If, after browsing to and playing a clip, the user selects the main tab or settings tab and then attempts to go back to the browse tab, I get cannot access a disposed object error. If I put the calls to mediaElement.Handler?.DisconnectHandler(); in either OnDisappearing() or Unloaded() I get System.ObjectDisposedException: 'Cannot access a disposed object. Object name: 'CommunityToolkit.Maui.Core.Views.MauiMediaElement'.' on that DicsonnectHandler() call.

@ne0rrmatrix
Copy link
Contributor

If you can test against this PR: #2076 and report if it solves your issue I would appreciate it.

@mjmeans
Copy link

mjmeans commented Dec 18, 2024

I had been trying many things over the last several days. Probably 20 hours experimenting and researching this one issue before I decided to post here. I was really worried that I was spending way too much time on something that was simple to do in the old Xamarin from 4 years ago, though at that time I was only targeting Android.

After posting here I also discovered that MediaElement requires that it be part of the visual tree to work at all; even when only playing audio clips. I found this tidbit of information by removing the XAML MediaElement and adding the control and bindings in the page's class constructor. This idea was that I could manage the control's disposal manually and later move it to a Service class. However, if I commented out the Controls.Add(mediaElement); it would not play anything at all. Thus, eliminating the possibility of moving it to a Service class.

I have no need for player controls or visual elements just to play sound effects. So, I started looking for some other way to do what I need. So, I just tried Plugin.Maui.Audio for the first time. It is working fine so far on Android. Tested for a couple of hours now with no issues. Still have to do some profiling and look for memory leaks, etc. I don't yet have an iOS device to play with yet either. If it turns out that this other package has issues with iOS or I have to go back to the drawing board for another reason, I'll return here. If after tomorrows testing my app is fine, then it means it's almost finished, and I could get it in the app stores before Xmas.

I'm leery of trying to use an unreleased library version in an app I intend to publish. However, I will have to come back to this if the other package, which is working fine up to now, actually has other issues. Beyond that, I can possibly test this PR if I end up meeting my deadline and have some free time. I'm sorry I can't give you a better answer at this time,

@bijington
Copy link
Contributor

@mjmeans if you only need to play sound effects I would encourage you to use Plugin.Maui.Media. If there are issues with it then please feed them back on its repo. I help maintain that package too so we can work towards fixing things 😃

@mjmeans
Copy link

mjmeans commented Dec 18, 2024

I did brieffly look at the PR. there is quite a lot of commits there. Too much to digest in a few minutes. One thing I noticed is that it's on version 8, which I think is a good thing. Greater compatibility with older devices and is on the long-term service branch, whereas .NET 9.0 is not. I'll look into your other repo in a few days to see what it can do.

@Pmr-precure
Copy link

Can you check and see if this PR fixes your issue? #2076 If it does not can you get back to me.

We are starting to see the Dispose Exception again, everytime we play a video, dispose it and then set the App.Mainpage, then we hit this.
I tried your Media3 branch, but its the same.

@jhovelnu
Copy link
Author

Hi, I am updating my MAUI App to Net9 and the Toolkit:MediaElement is crashing every time System.ObjectDisposedException: Cannot access a disposed object. Object name: 'CommunityToolkit.Maui.Core.Views.MauiMediaElement' even without playing a video. When I set the new MainPage the app crashes.

@brminnick
Copy link
Collaborator

The .NET MAUI team re-engineered Handler disconnection in .NET 9: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#handler-disconnection

If you are manually disconnecting the Handler, you need to first set HandlerProperties.SetDisconnectPolicy(video, HandlerDisconnectPolicy.Manual);.

@Pmr-precure
Copy link

The .NET MAUI team re-engineered Handler disconnection in .NET 9: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#handler-disconnection

If you are manually disconnecting the Handler, you need to first set HandlerProperties.SetDisconnectPolicy(video, HandlerDisconnectPolicy.Manual);.

Will try this tomorrow

@jhovelnu
Copy link
Author

The .NET MAUI team re-engineered Handler disconnection in .NET 9: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#handler-disconnection

If you are manually disconnecting the Handler, you need to first set HandlerProperties.SetDisconnectPolicy(video, HandlerDisconnectPolicy.Manual);.

Hi, I added the HandlerProperties.SetDisconnectPolicy in the OnAppearing and now it works well, the app does not crash anymore.

Image

Image

@Pmr-precure
Copy link

The .NET MAUI team re-engineered Handler disconnection in .NET 9: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#handler-disconnection

If you are manually disconnecting the Handler, you need to first set HandlerProperties.SetDisconnectPolicy(video, HandlerDisconnectPolicy.Manual);.

No crashes now :D weee.

@Pmr-precure
Copy link

Pmr-precure commented Jan 2, 2025

The .NET MAUI team re-engineered Handler disconnection in .NET 9: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#handler-disconnection
If you are manually disconnecting the Handler, you need to first set HandlerProperties.SetDisconnectPolicy(video, HandlerDisconnectPolicy.Manual);.

No crashes now :D weee.

I might have been too quick to say it was crash free. We are now getting System.ObjectDisposedException: 'Cannot access a disposed object.
Object name: 'Android.Media.AudioManager'.'"

Image

Seems to happen in MediaControlsService.Android.cs 253

@brminnick
Copy link
Collaborator

@Pmr-precure Could you do us a huge favor and open a new Issue for that bug?

@Pmr-precure
Copy link

@Pmr-precure Could you do us a huge favor and open a new Issue for that bug?

Hi,

Ye i will.
Im currently doing some testing, i think it might be related to this issue #2419 .
Since we already run another service aswell for our BLE devices.

@Pmr-precure
Copy link

@Pmr-precure Could you do us a huge favor and open a new Issue for that bug?

Hi,

Ye i will. Im currently doing some testing, i think it might be related to this issue #2419 . Since we already run another service aswell for our BLE devices.

#2423 I added this issue, the repo replicates the Disposed object bug, and if a Delay is added before the disconnect it fixes it. Not sure whats going on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working 📽️ MediaElement Issue/PR that has to do with MediaElement unverified
Projects
None yet
Development

No branches or pull requests

8 participants