Adobe could have a killer scripting environment for inclusion into a host application, think VBA, if they would consider moving that direction. Until then it'll fall just a bit short for doing real applications.
For writing real desktop applications today, with cool UI's, in a nice garbage collected, stop the developer from hanging himself, and allows you to use your existing code bases, the choice is clear, Microsoft .NET with WPF.
Adobe I love you, I really, really love you. You're so close, why not go the extra mile and allow existing code to run within your runtime, or allow us to host the AIR runtime within our applications?
I think the NewsGator folks better get on the ball. Brent, Nick, are you listening?
More on the application at Adobe INSPIRE.
Second question. Let's now say I have to be in complete control of said video stream? Let's also assume I have a high quality media framework, or pipeline, that does this very thing. It's highly flexible and optimized for receiving, decoding, and displaying video, and audio, and meta-data for that matter. It's crucial to use this existing framework. AIR/Flash video won't do, period.
So, the big question is how do we marry our media pipeline to AIR/Flash? I've asked numerous folks and the answers are always the same. You cannot do that. I'm cool with that answer, but there's always a skeptic among the crowd that believes there's a way to "hack" around things when you're told you can't do it. :-)
One answer may be creating our own video codec? We could write that on top of our framework and do whatever is necessary to insert our video into the runtime as we see fit. Could this be one possible solution?
If you're an AIR/Flash expert that has done this sort of work, I'd like to hear from you. We've gone through so many options that won't work, including Alchemy, I don't believe this is possible to do the way we'd like to do it, but someone may have a way.
Having said that I think the web is great for services and it's super nice when the desktop application can be enhanced by a web service. We did this at Visio with the Find Shape feature. A web service for locating, and downloading, shapes from the web, into the desktop application. It worked quite well and gave you all the power and control of the desktop application.
Web only apps are still not there as a 100% replacement for the desktop, or client applications. Why do you think we have an iPhone SDK? Folks just couldn't do everything they wanted in the browser.
From what I know about AIR it has extreme limitations, some will see those limitations as a feature, which is true in some senses. If you have a HUGE investment in reusable frameworks, you cannot easily reuse those frameworks inside the AIR sandbox. That, for me, is a show stopper, which is quite unfortunate because it could be a great competitor to Microsoft's .NET if only you could reuse code more easily. Love or hate 'em, Microsoft has always done a great job of bringing old code into their new worlds. We've been able to bring critical frameworks into .NET very easily, and they behave like great .NET citizens.
So I could say "I built that on .NET, using C#, and Visual Studio". I have no idea how you describe that in the Adobe AIR/Flex/Flash/ActionScript world?
Would it be "I built that on AIR, using ActionScript, and the Flex IDE.", or something else all together?
I've been mixing AIR and Flex to mean the scripting language all week. I'm fairly certain AIR is equal to the .NET CLR?
Oh, and where does AIR fit into "Flash is being redefined?"
Hopefully we'll get some clear terms from Adobe soon, then maybe my pea brain can understand how everything works together.
We have a highly optimized media pipeline we use to display live and playback video. It's highly configurable and adaptable. Pretty obvious given we're a company that develops digital video surveillance systems. We have our own because we need to be in charge of that pipeline. We need to know what's happening and how so we can give our users the best possible experience. The bottom line. It's critical to the success of the product.
Now that we've laid the foundation for the question, here it is. How can I render into an AIR based application and not degrade performance? In a recent release of .NET 3.5 we can do this very thing in WPF, although I'd call it a bit of a hack, it works as expected, and, in general it gives us the performance we're after and makes us a nice WPF citizen.
Are there any technical articles floating around that...
A) Describe how AIR renders.
B) Describes a technique for painting on an AIR surface in a way that doesn't effect AIR performance?
Now, I'm no wilting flower when it comes to rolling up my sleeves and getting dirty. If it means using some Adobe provided API's for rendering, great, point me in the right direction!
My bottom line. I need to be able to render our video into an Adobe AIR application, the way I want, with the performance I expect, otherwise AIR is useless to me for this application.
Thanks for any, and all, feedback.
P.S. - Dear Adobe, don't take that the wrong way. I think AIR is an awesome technology. It just may not be useful for what we want to do. Thanks.