通过它我们可以非常方便的实现在线视频录制、视频直播、视频聊天以及视频会议等类似应用程序的开发。
在《FMS3系列(四):在线视频录制、视频回放 》这篇文章里我写了通过FMS来实现在线视频录制和视频回放的功能,客户端的开发和这篇文章是相同的,不同的是本文将使用Flex来开发。
首先我们来看看使用FluorineFx服务端是如何开发的,建立ApplicationAdapter是必然的,这里我们为本文中的示例程序建立的ApplicationAdapter为VideoApplication,并为其添加RemotingServiceAttribute 如下代码块:
namespace Fx.Adapter { /// <summary> /// 视频应用 /// </summary> [RemotingService] public class VideoApplication : ApplicationAdapter { public override bool AppStart(IScope application) { return base.AppStart(application); }
public override bool AppConnect(IConnection connection, object[] parameters) { return base.AppConnect(connection, parameters); } } }
ApplicationAdapter模板所提供的方法在实际项目开发中根据自己的需求去重写,这里不作过多介绍。光是这样还是不能实现视频的录制和回放的功能,这只是实现了基本的启动应用程序和客户端连接等基本功能,要想实现视频录制和回放,我们还得让 VideoApplication实现IStreamService接口,该接口提供了实现视频发布和播放的相应功能,其定义如下:
namespace FluorineFx.Messaging.Api.Stream { [CLSCompliant(false)] public interface IStreamService : IScopeService, IService { void closeStream(); int createStream(); voidoverride bool AppStart(IScope application) { RegisterStreamPublishSecurity(new PublishSecurity()); return base.AppStart(application); }
通过RegisterStreamPublishSecurity()方法注册好发布流的安全策略后,每次发布流都会通过自定义的安全策略来检测当前发布流是否符合自定义的安全规则。这样一方便可以保证别人恶意连接到你的应用程序进行流的发布,消耗网络带宽等多中不利现象,更多的好处还待研究。 本文示例程序下载 |