Use Adobe Flash/AIR VOIP in Winforms - winforms

Since there are no answers yet, I'm going to rewrite this question in hopes of an answer (I don't mind discussion, but I know SO is about Q&A). It appears security checks/prompts make it unfeasible to use Flash Player. With this in mind, the question still stands, but please answer based on experience using AIR.
I have a Winforms app written in C# that I need to add VOIP to. I really like how well the Flash Player VOIP solution works, the AEC (echo cancel) is awesome. I know they use Speex, but the implementation is still a lot of work even using Speex, so I'd like to use Adobe's solution directly in my app.
Has anyone done this? What issues will I have? A few I can think of:
IPC between AIR and Winforms app. I assume this is easy and several options, including sockets/network, file i/o, maybe others.
Based on this
Content running in the AIR application sandbox does not need the
permission of the user to access the microphone
I don't think security warnings will be an issue? I'm not sure what a sandbox is yet, but as long as my AIR app can run in this and still talk with my winforms app, then shouldn't be an issue.
I assume the voice capture including enhancements (AEC, NS, Speex, etc) are supported in AIR?
Are there any samples I can run that use voice capture in AIR?

Related

A small query regarding appcelerator titanium?

i'm planning on working with titanium.
i want to know if "Same origin policy" can be eliminated by using titanium.
are there any drawbacks in titanium?
please recommend some cross-platforms..
please do leave some suggestions..
Thank you,
SOP is especially used for HTTP. So it doesn't concern titanium since it only use javascript as "local" language that is "translated" into xcode. at the end you got an simple xcode-project and an .app file.
i use it for a quite complex app and it works fine. i needed adding some features as module written in objC since the framework isn't as ongoing concering the iphone API as the native objC, but that worked out fine.
Since you are asking for the drawbacks of Titanium.. here it is..
I would not say that it's cross platform. Even my android app will look different in my Mac compared to the one developed in Windows.
Not all functions will work on Android and iPhone. Some will partially work on the other.
Ti is a biased and Android Developer are always left behind.
Also, if you are developing an Android app like me, you will be facing a lot of problems and Kitchen Sink will not always work. Android development in Ti is very bad and expect to find a lot of bugs.
Contacts API is not even complete as of now (Version 1.60) . I can't even get the contacts email and phone number!
No Bluetooth support
I spent a lot of hours "debugging" and waiting for the emulator rather than serious coding.
API refence and the QA will help a bit but there are more questions than answers.
Ti doesn't even have a proper debugging features as well as IDE. Make sure to dedicate a lot of hours in knowing how it works. I have a hard time finding a good resources to start.
Memory Problem and Leaks are very common.
Gradients will not work in Android (use image instead)
and last thing, Documentation really sucks!
(but still I love Ti despite all of the above)

Is Silverlight ready for commercial website aimed towards non-savy-computer users

My concern is that novice users will turn their back to a website which asks them to install Silverlight.
One of the reasons I think they might be scared of installing Silverlight is because they are not aware of what Silverlight actually is.
What's your take on this?
You can see the website riastats.com for information on install base, the main thing is if Silverlight gives an advantage such as the NBC Olympics coverage in United States uses Silverlight because of the Smooth Streaming technology plus the ablity to have a Live DVR where live streams can be "rewound" - all these features are probably better supported by Silverlight has the Client and Server ends can be well integrated (with Microsoft solutions).
I may be a little biased as I am a Silverlight developer, but with a less than 5MB download for runtime, that helps sell it more - especially as it may be a better alternative than the Flex download for Flash if this is required to create a solution that would have worked in Silverlight as it is a larger download.
Check out the silverlight.net showcase you'll see who and where it is being used - you can then make your decision based on this - rather than a few opinions (including mine!).
Well Silverlight is installed on about 50% of pc's now. So it depends on your market. Normal web users (ie. non-developers) tend to install anything you prompt them to if you can clearly and succinctly give them a compelling reason to run your application.
It doesn't tend to matter outside of the work place environments if you use silverlight or flash. What's more important is that your application will solve a problem the user has, and you can communicate that well.
They do not know what is is, marketshare is around 40%. I'd say it's not ready if you want to reach everyone.
However if Flash or javascript is not an option, give a firsttime visitor window informing your clients about silverlight.
I think you're going to have a lot of users on the public internet that don't have it installed. If you're really going for a mass-market site, and you aren't doing a crazy amount of media-rich type content, I would go with something like JQuery to make your Javascript easy and cross-platform.

Does Silverlight have enough of an install base to consider deploying a public web application with it?

I know this question has been asked a million times in various ways by different businesses, but I'm wondering the community's opinion on it [There's this question, but in the fast-moving world of tech, a year is a long time]. For hypotheoretical purposes, let's consider a website where users can watch videos, a la YouTube, Hulu, etc. (actually, it's an on-demand transcoding solution, but close enough). The website could deployed:
Using HTML, JavaScript, and HTML5's <video> tag
Using HTML, JavaScript and Flash (like most are right now)
Using HTML, JavaScript and Silverlight just for the video player
Using Silverlight for navigation, creating a rich all-Silverlight experience
(Let's assume, again hypoteoretically, that the all-Silverlight version is not as annoying as most all-Flash pages are today, but instead provides an experience similar to a desktop application)
Which way would be able to reach a large percentage of the population? How would people feel about having to install Silverlight to view a site -- how much would they want to see the content to make them click the install button? What if a user is browsing the site at the library on on another public computer with limited bandwidth, possibly using older hardware and with an unprivileged user account -- how easy would it be for them to install the Silverlight runtime?
I really want to use Silverlight since I like its' model (I've been using it for an internal app at work, and I think it's an excellent platform), however I'm afraid that for a public site, a large percentage of users would not be able to view the site, then Flash may be better option.
EDIT:
Well, the idea is to have a player where users can access videos on their home PCs from the web. So the users usually won't be using a home PC -- they'll be using work PCs, friend's PCs, public PCs, etc. That's why I'm worried about the security/install privileges issue.
Start with what each of technologies can do for you and match that against your requirements re: content delivery. Assuming each is just as good as the other for the purpose at hand, and that you have the requisite skills in each or dont mind learning them to produce your content, then dont see player distribution as a problem.
Users not having the priviledges to install the player should it be absent would generally be considered an edge case. If your site is specifically targeting a user group to which this is more likely to apply then obviously it requires deeper consideration but at the end of the day you're always going to have a percentage of surfers who cant do something, or use something, for some reason. In this case it's likely a small percentage and good design dictates some form of graceful degradation regardless of the technology being deployed.
Your other questions re: user preferences is difficult to gauge. Here is a list of sites that clearly dont think its an issue. You'd have to extrapolate the adoption rate numbers but this link, albeit to an MS blog entry, suggests the adoption rate is high, especially considering Silverlights relatively short life.
You also have to factor in that it's an MS technology so you're going to benefit from Windows Update, etc and the strength of the MS marketing machine.
Recommendation: Go for it. The more the merrier.
..
Richard
This line is the decider for me:
I really want to use Silverlight since I like its' model
If you like Silverlight enough to really want to use it, go for it. The UI will be as useful or as annoying as you make it, so Flash has nothing intrinsic over Silverlight there. It comes down to whether Silverlight will do what you want it to.
HTML5 and its suite of technologies are a far better fit at this level. I went to a Microsoft confrence recently and the HTML5 talks where all booked out and the Silverlight talks had hardly any attendees. You can get a web application to almost have a normal application experience with JQuery ajax and HTML5.
Due it is an MS technology, Silverlight is successful for its short life, like Bing (i believe if it wasn't developed by MS most people wouldn't even know its name). But i would not use it for a website actually, most people dont want to install new things unless they have to. And if your site does not have a content that they will desire, they can go away from your site. I'm a Java developer but i dont use JavaFX for web apps, because most user machines have Flash installed it is a better choice for accessibility reasons. Silverlight is a new field for MS but Flash is around for years and it's one of the main focuses of Adobe.

Silverlight for the masses, is it time

We are launching a site that is media heavy and looking at using silverlight, since most of our video library is in wmv and from what i understand flash serving still costs a couple bucks.
Is silverlight really adopted out there, I know i use it as well as a bunch of developers for internal apps but as far as a web application is it ready to go, i went through a mac install with safari and had to restart my whole browser to install it, not exactly a great user experience. I also noticed that MS doesnt even use it for http://video.msn.com and also the few sites that have launched get crazy MAC people crying bloody murder , read http://www.itwriting.com/blog/641-mac-users-refusing-to-install-silverlight.html where one New York Times reader said "Nope. Not going to use anything from Microsoft. If reading the NYT requires MS products then, for this reader, goodbye NYT." when asked to install silverlight for NYT site. Tech wise moving forward I like Silverlight and some of the things i can do from a framework / wpf perspective and want to move ahead with it just not sure it's the out there enough yet.
Just wondering what people think out there
I think that if you have a user base that refuses to upgrade from Internet Explorer 6, good luck with getting anything else adopted, including Silverlight.
The thing can be installed more or less automatically just like Flash, for crying out loud. How difficult could it be?
The argument up to now has been, "Flash is already installed on most computers, so it already has high adoption." But that's a chicken and egg problem. How did Flash get adopted in the first place?
The NYT reader just has a prejudice. Clearly he believes that Microsoft is the evil empire. There's really nothing you can do about that. The real question is, how prevalent is this attitude? Certainly it will be common among the Linux/open source crowd, but it's hard for me to believe that this attitude would be prevalent among the average user. If anything, the Microsoft name is a warm and fuzzy for them.
I personally think Silverlight will pick up pace on business applications just because it's much programmer friendly and the fact that you can program it in .NET languages means it is much easier to reuse and maintain your business logic.
However, in terms of consumer application I don't think it can beat Flash, who's got a much larger install base and already used by most major companies. Also, don't forget HTML5, which now has integrated video element supported by major browsers including Firefox, Chrome and Safari.
Despite codec arguments, it is another strong contender, which will squeeze Silverlight's market share even further.
As a user and as a web developer I like sticking to the bare minimum. Like it or not Flash has pretty much become the standard platform for rich media on the internet. Everyone I know has flash to use videos from common sources like You Tube.
Since money seems to be an issue I might suggest Flowplayer, an open source Flash video player. Currently it only supports mpg, mov, and avi, but it's fairly easy to convert wmv to other formats using open source tools.
Here is Flowplayer:
http://flowplayer.org/v2/player/index.html
Here are some simple instructions for converting video:
http://flowplayer.org/v2/tutorials/my-movies.html
The only major sites using silverlight are ones that microsoft either owns, or has paid to use it, and most of the ones that they paid for switched back to flash. The version number may be approaching 3.0, but it is still a very new and immature platform that is not as widely installed as flash (which is pushing 97% of all browsers).
If you are talking wmv vs silverlight, I would go silverlight. If you are talking flash vs silverlight, I would say flash hands down. If you want to be forward thinking, serve stuff up with the HTML <video> tag, with flash as a fallback.
I remember that MLB went from showing those games from silverlight back to flash due to a few issues that didn't get resolve. It work pretty well on the Olympics, but beyond that I can't say how good or bad it is. Do you have any idea what percentage of users have Silverlight installed for their browsers? That might be something to look at.
I've heard that desktop Silverlight penetration is around 30%. Flash is somewhere north of 95%.
Going with Flash seems the easy decision now. I can certainly imagine a lot of Mac users seeing the "install Silverlight" message and saying, "Ick! No!"
In the long run, probably most Windows PCs will have Silverlight. Diehard Mac fans may never install it.
Meanwhile, I've seen more and more people who don't install Java, and who just pass on any site that says to install Java.
Adobe's only weakness now is mobile. They seem to have desktop locked up tight.

Possibilities for full blown silverlight applications

Since the launch of Silverlight 2 I was expecting a lot of full blown Silverlight applications popping up but still there seem to be little evidence of this. Does anybody know of such applications out there in the wild. And also what would be the obvious applications you would develop in Silverlight. I would say mail clients are bad examples as they just as well could be written as a web/ajax app. As Silverlight is far more powerful than web+ajax possible candidates should be impossible/akward implementing as a web/ajax app.
The ones that comes to my mind is
Photo and imaging editing apps
Reporting applications
Office applications, Word/Excel...
Edit:
Added from posts
Games
The point isn't that the app need to fill the whole screen just that it isn't just a small part of a webpage, or you could call it a full blown application running inside the webbrowser, only using the webbrowser as a host.
I think the Medical app that Microsoft itself developed shows pretty well what could be achieved with silverlight http://www.mscui.net/PatientJourneyDemonstrator/
As for image editing then as I understand its a bit difficult as Silverlight lacks a Bitmap API to be able to do per pixel image editing...
Edit:
I noticed you added Word/Excel to your question and there comes the problem that Silverlight doesn't have a rich text editor built in and there hasn't been real good examples of custom implementations. There is one http://www.codeplex.com/richtextedit but I haven't seen any applications that actually use it.
I'm working on one in the medical domain.
This started as an update of a Mac classic application but due to the amount of work involved, broadened to considering other toolkits. I convinced them to go for an initial WPF desktop port to be followed by a Silverlight version.
I don't know one so far, but I could imagine that it could be used in a kind like the fullscreen video playback on youtube.
How many fullscreen desktop apps are there? Most application don't need the entire screen. If you don't want to be distracted by menus and taskbars and so you go fullscreen. Another type of applications that can use fullscreen are games.
You are limited in fullscreen to certain key presses such as arrow keys, tab, enter, and space so this rules out some of those types of apps. They have done this for security reasons so an app can't hijack the screen and record the keypresses, but I wish they could come up with a scheme to sufficiently warn the user then allow it if they consent.
An application Microsoft seem to like to show case is the AOL mail client written entirely in silverlight.
Personally I follow the rule is if you would not write it in flash you would not write it in silverlight preferring AJAX in most cases. In the past most large flash application have failed such as the flash word processor (cant remember the name) while AJAX enabled applications such as google documents have taken off.
Finally I believe until moonlight (linux and mac support) has been released and more general users have silverlight downloaded developers will be reluctant to use it widely even for smaller apps and gadgets.

Resources