I noticed that sometimes I get "mediaPlayerStateChange" event and the player state is "buffering" even when the player is actually playing. In addition, I get "bufferingChange" event and the buffering value on this event equals "true". The player is playing fine, however, I never get the "bufferingChange" with value false or "mediaPlayerStateChange" saying player state is now "playing".
This is causing a visual bug in my player, since I have a buffering spinner that I choose to display according to player's state or according to "bufferingChange" events.
Is it a known issue with OSMF? is there any workaround?
can you provide a snippet of your code? Similar issues appear when mixing the events with the mediaplayer status for detecting state changes. Another problem source could be the event type, since the same event is used for multiple reasons.
Can you see the same behavior with StrobeMediaPlayback playing your asset?
I can't reproduce it with StrobeMediaPlayback.
I probably should have mentioned my player is based OSMF 1.0. I also have a player based OSMF 1.6 and I don't see the issue there. Was something around the area of player states or buffering events changed between these versions? I know that there were probably a lot of fixes between these two versions. The problem is my issue is quite difficult to reproduce so I want to make sure upgrading OSMF version will solve it.
SMP has a workaround implemented in BufferOverlay.as for similar issues (FM-1146): It uses a timer to check if the current time changes and, if so, to disable the overlay. You can use the same approach in your player.
I think that the OSMF changes did not affect your observed behavior on RTMP. I am aware of some changes on HDS part, though.
I ended up with a similar workaround:
I'm listening to TimeEvent.CURRENT_TIME_CHANGE, and if the difference between current time and last time (which I saved in the previous "currentTimeChage" event) smaller or equals player.currentTimeUpdateInterval I remove the spinner.
Thanks for your time!