Flash Player 10.1 with Flash Access support is live

Today, Wednesday June 10th, 2010, marks the general availability of the final release of Flash Player 10.1 and Adobe AIR 2.0.

In addition to providing a number of performance and user experience enhancements, these client runtimes were the last remaining pieces in the Flash Access 2.0 technology stack. As reported here, the back-end components shipped a month ago on May 10th so adopters could start developing content protection solutions based on Flash Access, using the public beta of Flash Player.

With the general availability of FP 10.1 with support for Flash Access, consumers have access to technology that will allow them to watch more premium content online. In addition, a number of other distribution and monetization technologies from Adobe, such as HTTP Dynamic Streaming rely on this Flash Player/AIR release. Other complementary offerings, such as the Open Source Media Framework, have also shipped recently.

Together, all these technologies will work together to enable new opportunities for monetization and highly interactive experiences while providing robust content protection. This represents the result of collaboration across several teams at Adobe who worked hard to bring this technology to market and advance the state of the art in video distribution.

It will be interesting to see how quickly this version of Flash Player gets adopted. With every Flash Player release, the adoption cycle keeps getting shorter. For instance, when Flash Player 10 was released, it had roughly 50% penetration within two months, and had passed 85% penetration in about 8 months. That’s penetration in all Internet-connected PCs, Macs and Linux boxes. How’s that for reach and consistency? If Flash Player 10.1 achieves that kind of penetration in less than 1 year, I believe it will be the most widespread DRM technology ever.

You can read details about other enhancements in FP10.1 on the Flash Player blog.

Florian Pestoni
Principal Product Manager
Adobe Systems
twitter: @florianatadobe

Using NativeProcess in AIR 2 with GPSBabel

GPSBabel is one of the coolest projects on the internet. It takes basically any geolocation format and quickly lets you convert it into any other format. And the world of geodata is a wild west of various formats so it makes it super easy to bring all of that together in a handy command line tool.

Because it has a command line tool I figured it would make a pretty good (and easy) demo for AIR 2’s NativeProcess APIs. And it does! In fact, I started work on an ActionScript 3 wrapper that (should) make it easy to call GPSBabel from an AIR application and make it do your bidding. It’s in really, really rough shape, but here’s the beginning of it.

Getting Started

The first thing you need to do to use the NativeProcess API is to alter your app-xml file. After the initialWindow tag are a bunch of commented lines that talk about supportedProfiles. The NativeProcess API only works in the extendedDesktop profile so you need to enable it with this line.

<supportedProfiles>extendedDesktop</supportedProfiles>

With that, you can start testing the NativeProcess API.

Calling GPSBabel

Using the NativeProcess API is pretty simple. You first create a NativeProcessStartupInfo object which is where you point to the executable binary as well as pass in any arguments. Then you set up event listeners on the NativeProcess object, and finally you call the start() method and pass in your startup object.

To convert one file type from another, GPSBabel takes a series of command line arguments. This is the command to convert a GPX file into a KML file.

gpsbabel -i gpx -f /tmp/myroute.gpx -o kml -F /tmp/myroute.kml

So to replicate this with the NativeProcess API first create the startup object and pass in those arguments. The -i is the format of the original file, -f points to the original file, -o is the format to convert to, and -F is the converted file. All of those are pushed to the arguments property of the startup object.

var npsi:NativeProcessStartupInfo = new NativeProcessStartupInfo();
// The location of GPSBabel (a file object)
npsi.executable = _gpsBabelLocation;
var args:Vector.<String> = new Vector.<String>;
args.push("-i");
args.push("gpx");
args.push("-f");
args.push("/tmp/myroute.gpx");
args.push("-o");
args.push("kml");
args.push("-F");
args.push("/tmp/myroute.kml");
npsi.arguments = args;

The next step is to add event listeners to the NativeProcess object. Most of the time, GPSBabel just sends standard messages in UTF, so handling responses is easy. In the case of a conversion, the only event listener that really matters is the error listener.

_process = new NativeProcess();
_process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA,onStandardErrorData);

Dealing with NativeProcess events was a little odd to me, but because GPSBabel just returns text, this is pretty easy. If it errors, out, it dumps text to the screen. That text becomes part of the NativeProcess object. Depending on what the context is (if it’s an error, or just regular data output) it goes into a different variable. In this case, the event listener just reads the error data from the standardError property and traces it out

private function onStandardErrorData(event:ProgressEvent):void
{
trace(_process.standardError.readUTFBytes(_process.standardError.bytesAvailable));
}

The last thing to do is to go back up and start the process off by calling the start method and passing in the startup options that were created before.

_process.start(npStartupInfo);

And that’s it. I’ve got an example on GitHub as part of the GPSBabelOnAIR project. The mxml file in the examples folder uses the library which is where all of the NativeProcess code in. The combination of those should provide a working basic example of using NativeProcess and GPSBabel.

Radian6 Launches AIR Based Social Media Console

The Adobe Flash Platform continues to be the leading platform for building tools that help companies manage their social media presence. Radian6 today released the Radian6 Engagement Console, a new application built on Adobe AIR that helps companies monitor and respond to conversations about their brands online. TechCrunch has some more details on the application, or watch the video below to see it in action.

Adobe AIR 1.5.3 Coming Soon

We are very close to shipping Adobe AIR 1.5.3, the next minor update to the AIR runtime. If you are a developer building Adobe AIR apps, it is highly recommended that you review the blog post "Upcoming Certificate Renewal Changes in Adobe AIR" by Oliver Goldman, a member of our development team. The release notes for AIR 1.5.3 will include additional information on the upcoming certificate renewal changes. Once AIR 1.5.3 is made publicly available, we will be sure to link to those release notes from a new post on our blog.