I wanted to revisit this question from before I first asked it. I'm developing a completely new version of my application and I cannot find any media player available cross-platform from the shared code in Xamarin.Forms
so I'm stuck with using MediaElement
as its the only one that provides the functionality of using embedded resources for video files. Unlike the other players out there all use API
and URI
to play videos from the internet which is not what I need.
After numerous testing on 2 different platforms, this app is for Android
and iOS
, I now can tell confidently that the flickering is only happening on Android
devices and not iOS
-> iPhones or iPads.
I wonder if there is any solution to pre-load the source file to the MediaPlayer
which is what is under the hood for Android
using MediaElement
.
There are a few solutions that I've come up with but am not happy with.
1: Have an identical first frame image of the video and overlay it over the screen for 200 - 400
milliseconds and make it disappear. The problem with that is it is not easily scalable which I require as my app requires a large number of videos and getting the first frame of approx 120+ videos and having them all as assets are just not necessary.
2: Take a screenshot of the previous screen and display it over the video screen and make it disappear after 200 - 400
milliseconds and then make it disappear. The problem with this actual user experience becomes weird because you constantly see the previous screen and you see it just disappear even tho you've just come to a new page and you can definitely tell that you've moved pages.
In conclusion, I don't really know if this is a problem possible to solve by a user of the package or if requires someone who is in depth of understanding the package to fix this. This could also be a problem in Android
side which doesn't load videos efficiently and this is causing problems in loading videos for Android
platform apps
Many Thanks in Advance.