Flash On

Adobe AIR Download Manager using Flex

16-04-2009

Flex

I have been investigating and designing an MP3 download manager built using Flex and delivered as an Adobe AIR app. Its a really interesting area, since desktop application development and web development is finally becoming a relatively easy activity and OS compatibility issues are becoming a thing of the past. AIR apps can be built in a number of different ways and there are tons of tutorials and resources on the net to help you get started. I will share a few helpful articles and my experiences getting the grips with the platform as we go through.

Competing against the various piracy options available is nothing new. iTunes and Amazon are both formidable competitors and as the price of music is forced down, legitimate online download propositions are becoming more and more feasible. The key is to offer features that make downloading legally a significantly better user experience than downloading via torrent or Rapidshare and any of the other emerging black holes that appear each day. One way is through the bundling and management of music downloading. Often someone may want the entire back catalogue of an artist, or a collection of music from the same label, or a playlist of tracks put together by someone authoritative. This is something that is not always straightforward when taking the illegal route. For this to be possible we need an application to do it and what better way than to use Adobe AIR with all its reusable components and simple architecture to enable fast development that will support this fast changing market.

Both Beatport and BBC iPlayer have already taken the AIR route to manage downloads. Although neither are established enough to gauge any success. Both apps are not stand-alone and have significant integration points with their respective web sites. AIR takes this in its stride and components to allow web applications to control the AIR app and initiate downloads are documented in this Adobe article. Those who have yet to install an AIR app should do so, just to see how nicely they have integrated the install and update process.

This sample downloading class can hopefully be used to simplify the core download element of the app. Although I have yet to work out how to combine various components from the various samples I have found. Its always reassuring to see that various bits of functionality is possible before adding it to the design or requirements though. Something like bandwidth throttling seemed more tricky so I am going to leave that for the server-side components.

More updates once I get a bit further through…

Written By Tim for the Stuff, Web Technology section Tags: , , , , , , ,

Comments/Trackbacks

  1. May 15th, 2009 at 21:46 | #1

    Спасибо. Появилась уникальная идея, но потребует частичной реорганизации вашей идеи, займусь скором будущем. Позже поделюсь с читателями блога!

  2. July 12th, 2009 at 11:36 | #2

    I am trying to do a similar thing but for flv files. the idea is to add the new ones to the library/playlist in the same app…. doing my head in though. the source file for your link didnt work for me…
    “ponent/set processedDescriptors()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1217]
    at mx.core::Container/createComponentsFromDescriptors()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3506]
    at mx.core::Container/createChildren()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2589]
    at mx.core::WindowedApplication/createChildren()[C:\autobuild\3.2.0\frameworks\projects\airframework\src\mx\core\WindowedApplication.as:1766]
    at mx.core::UIComponent/initialize()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5370]
    at mx.core::Container/initialize()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2526]
    at mx.core::Application/initialize()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Application.as:846]
    at text/initialize()[C:\Users\Mechanism\Documents\Flex Builder 3\text\src\text.mxml:0]
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::childAdded()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2009]
    at mx.managers::SystemManager/initializeTopLevelWindow()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3234]
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3064]
    at mx.managers::SystemManager/docFrameListener()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2916]

    any ideas what all this means?

  3. July 12th, 2009 at 14:14 | #3

    Hi Chris… are you sure you have pasted in the whole error message?

    If you can send me the source code I am happy to take a look.

    It took me a while to get the source for the downloader going myself. I actually tweaked it a lot so that I could make it work for multiple files. I wrote another article about there here. @chris

  1. No trackbacks yet.

Name (required)

E-Mail (required)

Website