Self-contained custom flash component that is comprised of both a media player and playlist, and includes the following high-level features:
* Plays both audio and video
* Plays pre-roll, mid-roll, and post-roll advertisements
* Interacts with both javascript and XML web services to send and receive data
* Provides all common "player" functions (play, pause, stop, fast-forward, rewind, seek, full-screen, volume control, etc.)
* Provides all common "playlist" functions (add, remove, reorder, randomize/shuffle, repeat, play next, etc.)
* Provides a number of custom functions for integration with our website via javascript callbacks and and XML web services API
* Is self-contained and embeddable in other websites
* Supports multiple languages?
## Deliverables
Flash Media Player and Playlist (combined) component which can be used in our website (in which case it will interact with the site using javascript and our XML web services API) or be fully self-contained and be embeddable in 3rd-party websites (in which case it will interact exclusively with our XML web services API).
Following are general functional requirements of the player and playlist component (combined).
* Embeddable in our website
* Embeddable in 3rd-party websites
* Flash 9.x compatible
* "Cache-safe" (i.e. forces browser to download component each time, so that when component is modified, end-users are guaranteed to get new version
* Read and write cookies (same-domain and cross-domain - i.e. read our website's cookies when embedded either in our website or in a 3rd-party's website)
* Determine and pass along contextual data (browser's IP address, host URL, page content (when embedded in 3rd party website)
* Authenticate to our site with a complex key to ensure object has not be tampered with
* Provide multiple options for embedding, including multiple sizes, aspect-ratios, skins/color schemes, banner ads, branding options, etc.
* Support for multiple languages by reading in labels, etc., from XML web service
Following are line-item functional requirements of the player and playlist component (both when integrated with our website and embedded).? Each of these functions may be called (or call out to) javascript and/or a web services API, as necessary (and technically feasible).
* Play audio and video
* Show fractal-pattern visualizations while playing audio
* Retrieve media URL(s) on the fly at play-time
* Retrieve ad URL(s) on the fly at play-time
* Play pre-roll, mid-roll, and post-roll advertisements
* Send multiple "heartbeats" to web service every 10 seconds (configurable) for media play and by completion percentage (configurable) for ad play
* Common "player" functions (play, pause, stop, fast-forward, rewind, full-screen, volume control, seek, etc.)
* Flag item for abuse
* Authenticate with username/password via webservice prior to playing item(s)
* Retrieve metadata (including demographic data) once user has logged in
* Retrieve metadata for current item (title, description, thumbnail, etc.)
* Visual representation of playlist, showing thumbnail images of audio or video clips
* Add item(s) to playlist by GUID
* Remove item(s) from playlist by GUID
* Reorder items in playlist
* Shuffle items in playlist
* Play item (user-initiated)
* Auto-play next item on completion of previous item
* Digg item (<[login to view URL]>)
* Digg playlist (<[login to view URL]>)
* Review/rate item
* Review/rate playlist
Following are line-item functional requirements of the player and playlist component (ONLY when integrated with our website ).? Each of these functions may be called (or call out to) javascript and/or a web services API, as necessary (and technically feasible).
* Send playlist to other users (via internal messaging functionality)
* Send item to other users (via internal messaging functionality of our site)
* Save playlist
* Show item info
* Purchase item
Following are line-item property requirements of the playlist component.? Each of the following properties must be recorded and maintained in the component for the life of the session (instance).
* Visual display of which item in the playlist is currently being played
* Visual display of length of the item currently being played
* Visual display of current location in the item currently being played
* Visual display of total number of items in the playlist
* Visual display of total length of all items in the playlist
* Metadata for all items in the playlist (title, description, artist, album or series the item belongs to, URL for stream, URL for thumbnail image, etc.)
* Order of items in playlist