Posts Tagged ‘player’
Here’s a look at another interesting flash player implementation by Joa Ebert using Java with OpenGL rendering support. It is at an early stage but has the right idea in hardware rendering to OpenGL which is easily cross platform and mobile capable with speed.
This project is pretty new but there is work to make it web browser capable either in a java applet or a plugin for IE/FF/WebKit/etc but there are also others that are out there using alternative renderers. Most of these are in early development with varying support and do not currently compare to Adobe’s Flash Player versions. However the hardware rendering ones like JITB may beat it fairly quickly once all the other features are added. Complete OpenGL based renderers like Unity or WebGL are fast and can run pretty heavy rendering because of hardware acceleration for all drawing and native support.
Other Flash Player implementations:
- AS3 script via LLVM
- Written in C++ (very portable for native)
- OpenGL accelerated rendering
- limited support
- Firefox plugin
- Early development
- flash 7-9 support
Flash Players that use OpenGL as the renderer are nice because cross platform support is easier. The reason why OpenGL is a great idea is it is so cross platform on desktop and on mobile, it is also coming soon in WebGL for the browser hopefully.
Versions of OpenGL and support
- OpenGL ES
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
- iOS devices 3rd gen and lessx
- OpenGL ES 2.0 = OpenGL 2+ (current version 4.1 – shader capable).
- iPhone (3GS or later), iPod Touch (3rd generation and later) and iPad
- Android 2.2+
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
There is still a clear open field for an open source player to match something like Moonlight for Silverlight or hardware rendered canvas. WebGL would be great to have in time if it gets support but it is also nice to have a compiled language in the content that works in the player faster than scripting but with the ease of scripting. Plugins are still very relevant if they can address that.
Alessandro Pignotti’s project looks to be the start of something good to come. Lightspark Open Source Flash Player [github]has some really nice features that should influence the Flash Player and maybe even draw some interest from Adobe? Maybe it can be like the Moonlight player for Silverlight only broader.
One such awesome feature is OpenGL GLSL hardware rendered shaders for elements of flash. Flash has Pixel Bender which is pretty nice but having GLSL shaders and the use of OpenGL directly is great.
- JIT compilation of ActionScript to native x86 bytecode using LLVM
- Hardware accelerated rendering using OpenGL Shaders (GLSL)
- Very good and robust support for current-generation ActionScript 3
- A new, clean, codebase exploiting multithreading and optimized for modern hardware. Designed from scratch after the official Flash documentation was released.
This is an interesting direction. There are most likely many things that do not work about this approach for existing content. But it is also a neat way to create new content that might be simple enough to play on desktop and a mobile version.
All these examples work on an iPhone or iPod Touch.
The YouTube Chromeless Player works with AS3/ActionScript 3.
The project is hosted on Google Code [youtubechromelesswrapper-as3]
Looks like they maybe had a contribution for this, so do it where you can.
This is something we’ve been wanting to provide for a while, and the YouTube API team greatly appreciates the work of developer Matthew Richmond of The Chopping Block for making it happen. Thanks Matthew!
- Google Code [youtubechromelesswrapper-as3]
- Article about the library
- Download the source (get from google code recommended)
player.loadVideoById(id:String, startSeconds:Number = 0):void
- Loads and plays video based on specified id.
player.cueNewVideo(id:String, startSeconds:Number = 0):void
- Loads but does not automatically play video based on specified id.
- Clears currently cued/loaded video.
- Sets the size of YouTubePlayer instance.
- Plays the currently cued/loaded video.
- Pauses the currently cued/loaded video.
- Stops the currently cued/loaded video.
- Seeks to specified time within the currently cued/loaded video.
- Returns the current state of the currently cued/loaded video.
- Returns the value of current bytes loaded of the currently cued/loaded video.
- Returns the value of total bytes loaded of the currently cued/loaded video.
- Returns the current position in time of the currently cued/loaded video.
- Returns the current duration of the currently cued/loaded video.
- Returns the start bytes of the currently cued/loaded video.
- Sets the volume of the currently cued/loaded video.
- Returns the current volume of the currently cued/loaded video.
- Stores the current volume and changes the volume of the currently cued/loaded video to 0.
- Returns the volume of the currently cued/loaded video to the last stored value when muted.
- Returns the current YouTube embed code of the currently cued/loaded video.
- Returns the current YouTube video url of the currently cued/loaded video.
- Fired once the Chromeless Player has successfully completed loading and is ready to accept operations calls.
state. Possible values are unstarted, ended, playing, paused, buffering, video cued. When the SWF is first loaded, it will broadcast an unstarted event. When the video is cued and ready to play, it will broadcast a video cued event.
- Fired when an error in the player occurs. There are two error codes possible: 100 is broadcasted when the video requested is not found. This occurs when a video has been removed (for any reason), or it has been marked as private. 101 is broadcasted when the video requested does not allow playback in the embedded players.