I share your pain (mostly interested in OSX and iOS, where the same problem occurs). The only solution I have is to associate each video (which is at least the βcannedβ application resources, and not the dynamic content from the network) with the png image of their final frame. When the video starts, turn on the display of the image below it (although in fact it is not visible at this point). When the video ends abruptly, the image remains visible.
This works fine on iOS, but on (some?) Macs, there may be a slight distortion in brightness between the video and the image (fortunetelling: do I have to do something with the OSX settings screen without affecting the video?)
The option for MediaPlayer or VideoOutput element types to freeze the last frame will be much simpler.
Another opportunity that I considered, but have not tried, will add up two videos. The one on top is the main player, but the one underneath it will simply search, say, for the last millisecond of the video and pause it. Then, when the main video ends and disappears ... there is as good as the last frame of the video showing below. This is basically the same as the image-based solution, but the image below it is dynamically created using a video player. I found that the mobile video HW and Qt wrap it up quite temperamental (though earlier in the earlier days of Qt5) to really not want to try and do something too smart with it, though.
source share