// // $Id$ package com.threerings.flash.media { import flash.events.IEventDispatcher; import com.threerings.util.ValueEvent; /** * Dispatched when the state of the mediaplayer changes, usually in response to commands * such as play/pause, etc. * value: an int state. @see MediaPlayerCodes * * @eventType com.threerings.flash.media.MediaPlayerCodes.STATE */ [Event(name="state", type="com.threerings.util.ValueEvent")] /** * Dispatched when the total duration of the media is known. * value: a Number expressing the duration in seconds. * * @eventType com.threerings.flash.media.MediaPlayerCodes.DURATION */ [Event(name="duration", type="com.threerings.util.ValueEvent")] /** * Dispatched periodically as the position is updated, during playback. * value: a Number expressing the position in seconds. * * @eventType com.threerings.flash.media.MediaPlayerCodes.POSITION */ [Event(name="position", type="com.threerings.util.ValueEvent")] /** * Dispatched when media metadata is available, if ever. * value: metadata object. @see getMetadata() for more info. * * @eventType com.threerings.flash.media.MediaPlayerCodes.METADATA */ [Event(name="metadata", type="com.threerings.util.ValueEvent")] /** * Dispatched when there's a problem. * value: a String error code/message. * * @eventType com.threerings.flash.media.MediaPlayerCodes.ERROR */ [Event(name="error", type="com.threerings.util.ValueEvent")] /** * Implemented by media-playing backends. */ public interface MediaPlayer extends IEventDispatcher { /** * @return a MediaPlayerCodes state constant. */ function getState () :int; /** * Play the media, if not already. */ function play () :void; /** * Pause the media, if not already. */ function pause () :void; /** * Get the duration of the media, in seconds, or NaN if not yet known. */ function getDuration () :Number; /** * Get the position of the media, in seconds, or NaN if not yet ready. */ function getPosition () :Number; /** * Seek to the specified position. */ function seek (position :Number) :void; /** * Set the volume, between 0-1. */ function setVolume (volume :Number) :void; /** * Get the volume, from 0 to 1. */ function getVolume () :Number; /** * Get metadata, or null if none or not yet available. The exact format of this data * object varies by MediaPlayer implementation, see the documentation for each. */ function getMetadata () :Object; /** * Unload the media. */ function unload () :void; } }