When adding a listener for the "playing" event, I notice that it's throwing 3 instances on initial play, 2 on pause, and then 2 on every play and pause after that.
You can even see this on the basic embedded player example on the documentation site:
http://developers.ustream.tv/player-api/basic-example.html
It should only throw one event per player state change, just like Youtube and Kaltura do.