Why does Silverlight provides webcam and microphone support without any encoding API?
In the list of new features in Silverlight 4 you will find following:
Webcam and microphone to allow sharing of video and audio for instance for chat or customer service applications.
Silverli开发者_JAVA百科ght captures an audio stream as raw pcm. So how would you realize for example audio/video chat or client/server audio recording application without any encoding on the client side, where there is no APIs in Silverlight available?
Much less in a Silverlight you cannot use an unmanaged dll. You can use a com automation (a new feature of the Silverlight 4, I think only for Windows) but only if it was already installed on the client side (do you know any encoding COM servers that are installed with the windows). Otherwise, how would you deploy a custom COM server within you Silverlight application?
The only way I found is either to deploy a command-line encoding and use it with COM AutomationFactory.CreateObject("WScript.Shell") or to implement an encoding to use it in your own AudioSink.
My initial thought when I discovered this was that MS hadn't realized what folks were actually asking for. As it turns out, though, after talking to some folks on the Silverlight team, the actual issue was just that they didn't have time to get to the streaming part. To get an end-to-end streaming (video chat) solution in place, they would have had to coordinate with a variety of teams that weren't connected in any particular way to the Silverlight team, and that just wasn't going to happen by the time Silverlight 4 needed to be released. Consequently, I suspect that they're going to have this fixed by the time Silverlight 5 rolls around.
If you need to use this functionality now, there's a fairly bare-bones implementation of a video chat application available from SocketCoder/Codeplex.
精彩评论