A software framework that allows seamless integration of generic media
players into a web browser. A media player is a software module that
implements specific interfaces; defines a playing state, such as playing,
paused, or stopped; and associates with the playing state a current
playback time. A generic media player implements interfaces, including
timing interfaces and playback synchronization interfaces for exchanging
timing and synchronization information with a web browser. A
player-hosting peer, which is a software component built into the
browser, manages generic player hosting by a web browser. The
player-hosting peer negotiates playback state and rendering status
between the browser and the media player. Both the media player and the
player-hosting peer maintain playing state and current playback time. The
relationship between the peer and the player is a master slave
relationship, with the peer being the master. The peer issues commands to
the player, and the player notifies the peer of any state changes. A
proxy layer allows external media players to integrate seamlessly into a
browser.