Search code examples
javascriptflashflvyoutube-apiswfobject

Is there a Chromeless player solution for videos hosted elsewhere besides Youtube?


I am looking for the abilities that Youtube's Chromeless player has to offer but for non-Youtube hosted videos such as Metacafe, Vimeo, Viddler, etc. Abilities I will need are :

  • Mute/Unmute (toggle)
  • Volume
  • Loop
  • Resize video dimensions
  • Current play back position
  • Load bar

Can I use Chromeless player for videos hosted on other sites besides Youtube?
If not, is there a solution out there?
If not, what languages/APIs would I need use and know to create such an application?


Solution

  • The easiest option is to use the Flash built-in video component, which lets you change the color and they offer an "invisible" (chromless?) version that only shows up on the rollover.

    JW Player is very popular, and there is also the Strobe Media Player (www.osmf.org/strobe_mediaplayback.html).

    You can use the OSMF (open source media framework) but this uses flash 10.1, sample code would be:

    package
    
    {
    
    import flash.display.Sprite;
    
    import org.osmf.containers.MediaContainer;
    
    import org.osmf.elements.VideoElement;
    
    import org.osmf.events.LoaderEvent;
    
    import org.osmf.media.MediaPlayer;
    
    import org.osmf.media.URLResource;
    
    import org.osmf.net.NetLoader;
    
    public class BasicOSMFProgressive extends Sprite
    
    {
    
    private const PROGRESSIVE:String = "http://localhost/video.mp4";
    
    private var _display:MediaContainer;
    
    private var _player:MediaPlayer;
    
    private var _netLoader:NetLoader;
    
    public function BasicOSMFProgressive()
    
    {
    
    _netLoader = new NetLoader();
    
    _netLoader.addEventListener( LoaderEvent.LOAD_STATE_CHANGE, onLoaderStateChange );
    
    var media:VideoElement = new VideoElement( new URLResource( PROGRESSIVE ), _netLoader );
    
    _player = new MediaPlayer( media );
    
    _display = new MediaContainer();
    
    _display.addMediaElement( media );
    
    addChild( _display );
    
    }
    
    private function onLoaderStateChange( e:LoaderEvent ) :void
    
    {
    
    trace( "MediaElement is: " + e.newState );
    
    }
    
    }
    
    }