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] RTSP Url stream presumed incompatibility in Maui.Toolkit Android Exoplayer component #972

Closed
2 tasks done
Anioz opened this issue Feb 7, 2023 · 15 comments
Closed
2 tasks done
Labels
bug Something isn't working 📽️ MediaElement Issue/PR that has to do with MediaElement needs reproduction stale The author has not responded in over 30 days unverified

Comments

@Anioz
Copy link

Anioz commented Feb 7, 2023

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

Crashes the app on the latest version at current time with following error:

"
[AndroidRuntime] FATAL EXCEPTION: ExoPlayer:Playback
[AndroidRuntime] Process: com.solid.HomeCon, PID: 18345
[AndroidRuntime] java.lang.IllegalArgumentException
[AndroidRuntime] at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.generatePayloadFormat(RtspMediaTrack.java:260)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.(RtspMediaTrack.java:161)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.buildTrackList(RtspClient.java:347)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.access$1700(RtspClient.java:75)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.onDescribeResponseReceived(RtspClient.java:690)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:598)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:507)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$com-google-android-exoplayer2-source-rtsp-RtspClient$MessageListener(RtspClient.java:500)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4)
[AndroidRuntime] at android.os.Handler.handleCallback(Handler.java:883)
[AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:100)
[AndroidRuntime] at android.os.Looper.loop(Looper.java:237)
[AndroidRuntime] at android.os.HandlerThread.run(HandlerThread.java:67)
[m.solid.HomeCo] 0xebadde09 skipped times: 0
[libc] exiting due to SIG_DFL handler for signal 11"

Hikvision IP camera model HWI-D140H x 3 works great without any problems (maui toolkit rtsp://user:pswd@ip:554/ch1/sub/live)
Hikvision Doorbell camera model DS-KD8003-IME1 x1 crashes the app (maui toolkit rtsp://user:pswd@ip:554/ch1/sub/live works both in vlc and xamarin forms)
Foscam IP camera model R4M x 1 crashes the app (maui toolkit rtsp://user:pswd@ip:88/ch1/sub/live, works both in vlc and xamarin forms)
Foscam IP camera model R4M-B x 1 crashes the app (maui toolkit rtsp://user:pswd@ip:88/ch1/sub/live, works both in vlc and xamarin forms)

Ive tested with other ports this seems NOT to be the cause of the problem since the hikvision Doorbell crashes with the same error and uses the same url as the hikvision ip camera's (ive also tested a video only stream on the doorbell and it fails with the same exception)

Please advise on what tests to additionally try and if this will be looked at in an upcoming release of maui toolkit mediaelement, since at current time theres no real viable alternative

Expected Behavior

Plays any rtsp URL as long as given url format is a valid working one.

Steps To Reproduce

  1. Create new maui .net 7 framework solution
  2. Install maui toolkit nuget and follow readme instructions
  3. Add mediaelement xmlns and the element itself to one of the contentpages
  4. Prove to yourself that the specific given model of the Foscam and/or Hikvision camera is up and running with any other validation method (for example vlc or a previous xamarin forms project)
  5. Set the mediaelement source as the proven working rtsp url
  6. Run your Android app (debug or release)
  7. Check the log for the above fatal app crash

Link to public reproduction project repository

https://1drv.ms/u/s!AqVY9RkzgdHIrRJpCfa_rIgyBW7A?e=8oxTBc

Environment

- .NET MAUI CommunityToolkit: 1.0.1
- OS: Android 10 (SDK 29)
- .NET MAUI: 7.0

Anything else?

No response

@Anioz Anioz added bug Something isn't working unverified labels Feb 7, 2023
@ghost
Copy link

ghost commented Feb 7, 2023

Hi @Anioz. We have added the "needs reproduction" label to this issue, which indicates that we cannot take further action. This issue will be closed automatically in 5 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time.

@jfversluis jfversluis changed the title [BUG] {FATAL APP CRASH} RTSP Url stream presumed incompatibility in Maui.Toolkit Android Exoplayer component [BUG] RTSP Url stream presumed incompatibility in Maui.Toolkit Android Exoplayer component Feb 7, 2023
@jfversluis
Copy link
Member

jfversluis commented Feb 7, 2023

Ridiculously simply to reproduce, faster than a download in this case..

While you might think that, it's often not that simple. Remember, we don't have all the context you have. There are a lot of factors that can influence the behavior of a potential issue.

For instance, in this case, I can't reproduce it. Using this RTSP stream: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 in the sample app on this repo, it works perfectly for me.

So it might be something in the way we configure the ExoPlayer or how we load it, but at the very least I'm going to need a RTSP stream that actually shows this behavior.

@jfversluis jfversluis added the 📽️ MediaElement Issue/PR that has to do with MediaElement label Feb 7, 2023
@Anioz
Copy link
Author

Anioz commented Feb 7, 2023

I updated the comment with a repro link https://1drv.ms/u/s!AqVY9RkzgdHIrRJpCfa_rIgyBW7A?e=8oxTBc but its not showing yet.

Asking to make my usernames passwords and lan camera internet available to all is definatly unrealistic.

Allowing the maui app to feedback more in depth exception info from Exoplayer might be the better way to go, as i stated before i dont mind running experimental builds from you guys to test this and feedback that sensitive information privatly.

@Anioz
Copy link
Author

Anioz commented Feb 7, 2023

I also tested that stream and it works perfectly here locally: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4

@Anioz
Copy link
Author

Anioz commented Feb 7, 2023

this one seems very similar: google/ExoPlayer#4532

one user mentions: "In old ExoPlayer i changed ASSERTIONS_ENABLED to false to get rid of crash but now I'm using 2.8.2 and same problem still appeared on Samsung Devices with OS 7.0. ASSERTIONS_ENABLED is public static final in ExoPlayerLibraryInfo and can't modified this time cause I'm using 2.8.2 with gradle implementation."

Is there a possibility for me to tweak and play around with those settings somehow? (to try the proposed work arounds)

@bijington
Copy link
Contributor

Yes you can fork this repository and mess around with the settings as much as you like. You can point your app to the build from the fork rather than the NuGet package

@Anioz
Copy link
Author

Anioz commented Feb 8, 2023

Yes you can fork this repository and mess around with the settings as much as you like. You can point your app to the build from the fork rather than the NuGet package

Thanks to downloading maui 1.0.1 toolkit and modifying the exoplayer constructor as follows:

	var builder = new IExoPlayer.Builder(MauiContext.Context);

	builder.SetMediaSourceFactory(new RtspMediaSource.Factory().SetDebugLoggingEnabled(true));
	Player = builder.Build() ?? throw new NullReferenceException();

	Player.AddListener(this);

Following log item came available:
[RtspClient] RTSP/1.0 401 Unauthorized
[RtspClient] CSeq: 1
[RtspClient] WWW-Authenticate: Digest realm="Hikvision", nonce="a1142a0c619202fe28be22a7c8789a6d", random="G66huST+L3nomzn1NFq/isZmLVyHlh7/6qVGYsmoEHwZniHaisXZIRB/PYXiKg9R", stale="FALSE"
[RtspClient] WWW-Authenticate: Basic realm="Hikvision"
[RtspClient] Date: Wed, Feb 08 2023 12:34:06 GMT
[RtspClient] DESCRIBE rtsp://1.4.1.23:554/ch1/sub/live RTSP/1.0
[RtspClient] User-Agent: ExoPlayerLib/2.18.2
[RtspClient] CSeq: 2
[RtspClient] Authorization: Digest username="user", realm="Hikvision", nonce="a1142a0c619202fe28be22a7c8789a6d", uri="rtsp://1.4.1.23:554/ch1/sub/live", response="0de7c2e951f5c280dd5bc7af81df8d95"
[RtspClient]
[RtspClient] RTSP/1.0 200 OK
[RtspClient] CSeq: 2
[RtspClient] Content-Type: application/sdp
[RtspClient] Content-Base: rtsp://1.4.1.23:554/ch1/sub/live/
[RtspClient] Content-Length: 551
[RtspClient]
[RtspClient] v=0
[RtspClient] o=- 1675859646308821 1675859646308821 IN IP4 10.104.1.63
[RtspClient] s=Media Presentation
[RtspClient] e=NONE
[RtspClient] b=AS:5100
[RtspClient] t=0 0
[RtspClient] a=control:rtsp://1.4.1.23:554/ch1/sub/live/
[RtspClient] m=video 0 RTP/AVP 96
[RtspClient] b=AS:5000
[RtspClient] a=control:rtsp://1.4.1.23:554/ch1/sub/live/trackID=1
[RtspClient] a=rtpmap:96 H264/90000
[RtspClient] a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=
[RtspClient] m=audio 0 RTP/AVP 0
[RtspClient] b=AS:50
[RtspClient] a=control:rtsp://1.4.1.23:554/ch1/sub/live/trackID=2
[RtspClient] a=rtpmap:0 PCMU/8000
[RtspClient] a=Media_header:MEDIAINFO=494D4B48010100000400010010710110401F0000000;
[RtspClient] a=appversion:1.0

So basically its IGNORING/NOT USING the given password in the pswd string for some reason altough it works with the other URL's which are the same in several cases (except for the ip and username)

@Anioz
Copy link
Author

Anioz commented Feb 8, 2023

With rtsp authentication DISABLED on the camera which won't work and crashes the same with Exoplayer the following log output is gotten:
[RtspClient] OPTIONS rtsp://1.4.3.23:554/ch1/sub/live RTSP/1.0
[RtspClient] User-Agent: ExoPlayerLib/2.18.2
[RtspClient] CSeq: 0
[RtspClient]
[RtspClient] RTSP/1.0 200 OK
[RtspClient] CSeq: 0
[RtspClient] Public: OPTIONS, DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN
[RtspClient] Date: Wed, Feb 08 2023 13:54:56 GMT
[RtspClient] DESCRIBE rtsp://1.4.3.23:554/ch1/sub/live RTSP/1.0
[RtspClient] User-Agent: ExoPlayerLib/2.18.2
[RtspClient] CSeq: 1
[RtspClient]
[RtspClient] RTSP/1.0 200 OK
[RtspClient] CSeq: 1
[RtspClient] Content-Type: application/sdp
[RtspClient] Content-Base: rtsp://1.4.3.23:554/ch1/sub/live/
[RtspClient] Content-Length: 551
[RtspClient]
[RtspClient] v=0
[RtspClient] o=- 1675864496608871 1675864496608871 IN IP4 1.4.3.23
[RtspClient] s=Media Presentation
[RtspClient] e=NONE
[RtspClient] b=AS:5100
[RtspClient] t=0 0
[RtspClient] a=control:rtsp://1.4.3.23:554/ch1/sub/live/
[RtspClient] m=video 0 RTP/AVP 96
[RtspClient] b=AS:5000
[RtspClient] a=control:rtsp://1.4.3.23:554/ch1/sub/live/trackID=1
[RtspClient] a=rtpmap:96 H264/90000
[RtspClient] a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=
[RtspClient] m=audio 0 RTP/AVP 0
[RtspClient] b=AS:50
[RtspClient] a=control:rtsp://1.4.3.23:554/ch1/sub/live/trackID=2
[RtspClient] a=rtpmap:0 PCMU/8000
[RtspClient] a=Media_header:MEDIAINFO=494D4B48010100000400010010710110401F0000000;
[RtspClient] a=appversion:1.0
[SurfaceView] onWindowVisibilityChanged(0) true android.view.SurfaceView{a65b1cd V.E...... ......I. 0,0-0,0} of ViewRootImpl@2d39d02[MainActivity]
[AndroidRuntime] FATAL EXCEPTION: ExoPlayer:Playback
[AndroidRuntime] Process: com.companyname.rtspcrash, PID: 878
[AndroidRuntime] java.lang.IllegalArgumentException
[AndroidRuntime] at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.processH264FmtpAttribute(RtspMediaTrack.java:384)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.generatePayloadFormat(RtspMediaTrack.java:261)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.(RtspMediaTrack.java:161)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.buildTrackList(RtspClient.java:347)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.access$1700(RtspClient.java:75)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.onDescribeResponseReceived(RtspClient.java:690)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:598)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:507)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$com-google-android-exoplayer2-source-rtsp-RtspClient$MessageListener(RtspClient.java:500)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4)
[AndroidRuntime] at android.os.Handler.handleCallback(Handler.java:883)
[AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:100)
[AndroidRuntime] at android.os.Looper.loop(Looper.java:237)
[AndroidRuntime] at android.os.HandlerThread.run(HandlerThread.java:67)

@Anioz
Copy link
Author

Anioz commented Feb 8, 2023

same deal with the foscam cam's:
[Gralloc3] mapper 3.x is not supported
[RtspClient] RTSP/1.0 401 Unauthorized
[RtspClient] CSeq: 1
[RtspClient] Date: Wed, Feb 08 2023 13:02:50 GMT
[RtspClient] WWW-Authenticate: Digest realm="Foscam IPCam Living Video", nonce="ee2591312fd67b092eb4dbaa5aac0ee6"
[cutils-trace] Error opening trace file: No such file or directory (2)
[ViewRootImpl@2d39d02[MainActivity]] [DrawPending] pendingDrawFinished(0) 1 android.view.ViewRootImpl.lambda$performDraw$1$ViewRootImpl:4058 android.view.-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg.run:4 android.os.Handler.handleCallback:883
[ViewRootImpl@2d39d02[MainActivity]] [DrawPending] reportDrawFinished()
[Choreographer] Skipped 46 frames! The application may be doing too much work on its main thread.
[RtspClient] DESCRIBE rtsp://1.4.3.23:88/videoSub RTSP/1.0
[RtspClient] User-Agent: ExoPlayerLib/2.18.2
[RtspClient] CSeq: 2
[RtspClient] Authorization: Digest username="user", realm="Foscam IPCam Living Video", nonce="ee2591312fd67b092eb4dbaa5aac0ee6", uri="rtsp://1.4.3.23:88/videoSub", response="6fe2696db22ad8258708a0176e977ca0"
[RtspClient]
[ViewRootImpl@2d39d02[MainActivity]] Relayout returned: old=(0,0,1080,2220) new=(0,0,1080,2220) req=(1080,2220)0 dur=6 res=0x1 s={true 526827032576} ch=false
[ViewRootImpl@2d39d02[MainActivity]] MSG_WINDOW_FOCUS_CHANGED 1 1
[InputMethodManager] prepareNavigationBarInfo() DecorView@72fb691[MainActivity]
[InputMethodManager] getNavigationBarColor() -855310
[InputMethodManager] prepareNavigationBarInfo() DecorView@72fb691[MainActivity]
[InputMethodManager] getNavigationBarColor() -855310
[InputMethodManager] Starting input: tba=com.companyname.rtspcrash ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
[InputMethodManager] startInputInner - Id : 0
[InputMethodManager] startInputInner - mService.startInputOrWindowGainedFocus
[ViewRootImpl@2d39d02[MainActivity]] MSG_RESIZED: frame=(0,0,1080,2220) ci=(0,63,0,126) vi=(0,63,0,126) or=1
[InputMethodManager] prepareNavigationBarInfo() DecorView@72fb691[MainActivity]
[InputMethodManager] getNavigationBarColor() -855310
[InputMethodManager] Starting input: tba=com.companyname.rtspcrash ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
[InputMethodManager] startInputInner - Id : 0
[OpenGLRenderer] mPreviousPosition == bounds[l=0.00 t=210.00 r=1080.00 b=2094.00]
[RtspClient] RTSP/1.0 200 OK
[RtspClient] CSeq: 2
[RtspClient] Date: Wed, Feb 08 2023 13:02:50 GMT
[RtspClient] Content-Base: rtsp://1.4.3.23:65534/videoSub/
[RtspClient] Content-Type: application/sdp
[RtspClient] Content-Length: 393
[RtspClient]
[RtspClient] v=0
[RtspClient] o=- 1675861370737891 1 IN IP4 1.4.3.23
[RtspClient] s=IP Camera Video
[RtspClient] i=videoSub
[RtspClient] t=0 0
[RtspClient] a=tool:LIVE555 Streaming Media v2014.02.10
[RtspClient] a=type:broadcast
[RtspClient] a=control:*
[RtspClient] a=range:npt=0-
[RtspClient] a=x-qt-text-nam:IP Camera Video
[RtspClient] a=x-qt-text-inf:videoSub
[RtspClient] m=video 0 RTP/AVP 96
[RtspClient] c=IN IP4 0.0.0.0
[RtspClient] b=AS:96
[RtspClient] a=rtpmap:96 H264/90000
[RtspClient] a=control:track1
[RtspClient] m=audio 0 RTP/AVP 0
[RtspClient] c=IN IP4 0.0.0.0
[RtspClient] b=AS:64
[RtspClient] a=control:track2
[AndroidRuntime] FATAL EXCEPTION: ExoPlayer:Playback
[AndroidRuntime] Process: com.companyname.rtspcrash, PID: 32508
[AndroidRuntime] java.lang.IllegalArgumentException
[AndroidRuntime] at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.generatePayloadFormat(RtspMediaTrack.java:260)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspMediaTrack.(RtspMediaTrack.java:161)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.buildTrackList(RtspClient.java:347)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient.access$1700(RtspClient.java:75)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.onDescribeResponseReceived(RtspClient.java:690)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspResponse(RtspClient.java:598)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.handleRtspMessage(RtspClient.java:507)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener.lambda$onRtspMessageReceived$0$com-google-android-exoplayer2-source-rtsp-RtspClient$MessageListener(RtspClient.java:500)
[AndroidRuntime] at com.google.android.exoplayer2.source.rtsp.RtspClient$MessageListener$$ExternalSyntheticLambda0.run(Unknown Source:4)
[AndroidRuntime] at android.os.Handler.handleCallback(Handler.java:883)
[AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:100)
[AndroidRuntime] at android.os.Looper.loop(Looper.java:237)
[AndroidRuntime] at android.os.HandlerThread.run(HandlerThread.java:67)

So basically AUTH over rtsp has incompatibilities + this might be why the checkargument method fails, if someone knows how to implement our own version of RtspClient.MessageListener && RtspRequest header section (RtspHeaders.Builder) we could change the HEADER to a valid one and try get logs further down the proces altough the one rtsp hikvision stream without auth just fails just the same with no AUTH at all.. so prolly something else going on..

@bijington
Copy link
Contributor

Thanks to downloading maui 1.0.1 toolkit and modifying the exoplayer constructor as follows:

var builder = new IExoPlayer.Builder(MauiContext.Context);

builder.SetMediaSourceFactory(new RtspMediaSource.Factory().SetDebugLoggingEnabled(true));
Player = builder.Build() ?? throw new NullReferenceException();

Player.AddListener(this);

Thanks for this update. It sounds like we could possible add the ability to add in logging information into the documentation pages.

@ghost
Copy link

ghost commented Feb 13, 2023

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 3 days. It will be closed if no further activity occurs within 2 days of this comment. If it is closed, feel free to comment when you are able to provide the additional information and we will re-investigate.

@ghost ghost added the stale The author has not responded in over 30 days label Feb 13, 2023
@Anioz
Copy link
Author

Anioz commented Feb 14, 2023

Thanks to downloading maui 1.0.1 toolkit and modifying the exoplayer constructor as follows:

var builder = new IExoPlayer.Builder(MauiContext.Context);

builder.SetMediaSourceFactory(new RtspMediaSource.Factory().SetDebugLoggingEnabled(true));
Player = builder.Build() ?? throw new NullReferenceException();

Player.AddListener(this);

Thanks for this update. It sounds like we could possible add the ability to add in logging information into the documentation pages.

Glad to help. Adding it to the standard documentation will probably be very helpfull for weeding out a lot of the exoplayer type problems

Wish there was a rtsp auth reply msg editor made available in the exoplayer bindings that way we could even solve problems and just feedback the solution in its entirety.

@ghost ghost closed this as completed Feb 16, 2023
@ghost
Copy link

ghost commented Feb 16, 2023

We haven't received a reproduction sample from you. The issue is closed.

@dorton21
Copy link

@Anioz Would you be willing to post more information about how you resolved the authentication issues?

@Anioz
Copy link
Author

Anioz commented May 26, 2024

@Anioz Would you be willing to post more information about how you resolved the authentication issues?

I ended up doing away with exoplayer entirely and used a webview instead. For my videoplayer capabilities that i needed for other vids that are not streams i implemented libvlc video player for cross platform maui.

This issue was closed.
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 needs reproduction stale The author has not responded in over 30 days unverified
Projects
None yet
Development

No branches or pull requests

4 participants