具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的网页上数据流控制的方法的流程图。如图1所示,本发明的较佳实施例提供的网页上数据流控制的方法包括步骤101~106。
步骤101:发送端及接收端分别与流媒体服务器建立连接。
具体而言,于建立连接之前,所述发送端及接收端分别创建Flash Flex项目,并且所述发送端新建发布流媒体应用程序MXML,名称为PublishStream,所述接收端新建播放流媒体应用程序MXML,名称为PlayStream。
所述发送端与流媒体服务器建立连接的过程为:使用NetConnection类的构造函数创建一个NetConnection连接对象,名称为conn。所述发送端使用connect(URL)连接流媒体服务器,
及所述流媒体服务器的URL地址。所述发送端使用conn.connect(URL)与流媒体服务器建立连接后,为所述conn连接对象绑定监听事件。若监听获知状态信息为NetConnction.Connect.Success,则与所述流媒体服务器建立连接成功,若所述状态信息为NetConnction.Connect.Failed, 则与所述流媒体服务器建立连接失败,需检查所述流媒体服务器是否已启动,URL地址是否正确等。所述接收端与流媒体服务器建立连接的过程与上述过程类似,故于此不再赘述。
步骤102:所述发送端将获取的流媒体数据信息发送至所述流媒体服务器,所述流媒体服务器将自身每秒获取的字节数信息通知计算器。
具体而言,所述发送端与流媒体服务器建立连接后,需创建发布流。具体过程如下:使用NetStream类构造方法创建流对象 stream,所述流对象 stream用于通过 NetConnection 对象播放媒体文件和发送数据。所述发送端获取音频及视频数据信息的方式为:使用flash Camera类的getCamera()获取本地摄像头数据,使用flash Microphone类的getMicrophone()获取麦克风数据。所述发送端使用attachCamera方法将摄像头数据附加到流steam上,使用attachMicrophone方法将麦克风数据附加到流stream上。
所述发送端将获取的流媒体数据信息以数据流方式发送至流媒体服务器,除已获取的音视频数据外,所述数据流还包含用于标识自身身份信息的key。发送端完成发布流的创建后,添加一页面按钮事件,即可发布相应key的流媒体数据流至流媒体服务器。
发送端开始将流媒体数据流发送至流媒体服务器后,所述流媒体服务器将自身每秒获取的字节数信息通知计算器,或者所述计算器主动到所述流媒体服务器读取其每秒获取的字节数信息,然而对此本发明并不作限定。
步骤103:所述流媒体服务器接收到所述接收端发送的流媒体数据请求后,所述流媒体服务器通知所述计算器进行周期性流量统计。
具体而言,所述计算器内置定时器,当接收到流媒体服务器的通知时,定时器触发,所述计算器开始统计一个或多个周期流量。
步骤104:所述计算器根据所述流媒体服务器发送的每秒获取的字节数信息,计算并获取周期平均流量值,并将所述周期平均流量值发送给比较器。
具体而言,所述计算器根据所述流媒体服务器发送的每秒获取的字节数信息,计算并获取周期平均流量值的过程为:若每秒获取的字节数设置为S,n秒内流量统计结果=S1+S2+...Sn(n秒为一个周期),则n秒内平均流量值=(S1+S2+...Sn)/n)字节/秒。
步骤105:所述比较器比较所述周期平均流量值与自身存储的第一预设值并将比较结果发送至信息发布服务器。
具体而言,比较器存储流量的第一预设值,所述比较器比较一个或多个周期的周期平均流量值与第一预设值,并将比较结果发送至信息发布服务器。
步骤106:所述信息发布服务器根据所述比较结果,进行流量控制。
具体而言,所述信息发布服务器根据一个或多个周期的周期平均流量值与第一预设值的比较结果,进行流量控制的方式,包括以下几种。
第一种:若为一个周期,周期平均流量值小于第一预设值,则所述信息发布服务器通知所述流媒体服务器停止发送当前key的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
该流量控制方式的优点:
解决了在网络情况比较差或者服务器资源分配严重不合理的情况下,所导致的接收端不能接收到流畅的音视频流的问题。
第二种:若为多个周期,周期平均流量值小于第一预设值达到预设次数,则所述信息发布服务器通知所述流媒体服务器停止发送当前key的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
于此,若周期平均流量值小于第一预设值,且下一个周期内周期平均流量值不小于第一预设值,则信息发布服务器重新统计周期平均流量值小于第一预设值次数,若重新统计的周期平均流量值小于第一预设值达到预设次数,所述信息发布服务器通知所述流媒体服务器停止发送当前key的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
上述流量控制方式的优点:
网络情况比较差或者服务器资源分配严重不合理,但持续时间比较短的情况下,避免了盲目停止发送当前key的流媒体数据流,给用户带来的体验差的问题。
第三种:若为多个周期,周期平均流量值小于第一预设值连续达到预设次数,则所述信息发布服务器通知所述流媒体服务器停止发送当前key的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
上述流量控制方式的优点:
网络情况比较差或者服务器资源分配严重不合理,但持续时间比较长的情况下,避免了接收端不能接收到流畅的音视频流的问题。
于本实施例中,仅列举上述信息发布服务器进行流量控制的方式,以适用于不同情形。于其它实施例中,可根据实际需要自行设置流量控制方式,然而对此本发明并不作限定。
举例而言,若2012年10月9日10:00:00,发送端向流媒体服务器发送key为test的流媒体数据流,且流媒体服务器于10:02:00收到接收端发送的流媒体请求后向计算器发出通知,所述计算器接收所述通知后启动定时器开始周期性流量统计。若所述周期为10秒,且计算器于10:02:00至10:02:10的周期内,统计每秒的流量分别为:55 kb/s、45 kb/s、12kb/s、2 kb/s、2 kb/s、 1 kb/s、3kb/s、3 kb/s、2 kb/s、1 kb/s。所述计算器计算周期平均流量为(55+45+12+2+2+1+3+3+2+1)/10=12.6 kb/s并发送给比较器,若所述比较器存储流量的第一预设值为20kb/s。于此,所述周期平均流量(12.6 kb/s)小于第一预设值(20kb/s),比较器将比较结果通知信息发布服务器。若采用第一种流量控制方式,则当信息发布服务器第一次接收到周期平均流量值(12.6 kb/s)小于第一预设值(20kb/s)的比较结果时,通知流媒体服务器停止发送key为test的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
于本实施例中,若采用第二种流量控制方式,且所述预设次数为3。若信息发布服务器在第一次接收到周期平均流量值(12.6 kb/s)小于第一预设值(20kb/s)的比较结果后,又接收到接下来第一个10秒(即10:02:10至10:02:20)周期平均流量值(55kb/s)大于第一预设值(20kb/s)的比较结果,及第二个10秒(即10:02:20至10:02:30)周期平均流量值(15kb/s)小于第一预设值(20kb/s)的比较结果。则所述信息发布服务器从第二个10秒,即10:02:20开始,重新统计周期平均流量值小于20kb/s的次数,并当所述次数大于等于预设次数3次时,通知流媒体服务器停止发送key为test的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
若采用第三种流量控制方式,且所述预设次数为3。信息发布服务器接收到第三个10秒(即10:02:30至10:02:40)周期平均流量值(18 kb/s)小于第一预设值(20kb/s)的比较结果,第四个10秒(即10:02:40至10:02:50)周期平均流量值(16 kb/s)小于第一预设值(20kb/s)的比较结果,则信息发布服务器于10:02:51通知流媒体服务器停止发送key为test的流媒体数据流并指示所述流媒体服务器重新发布,并由所述流媒体服务器向所述接收端发送重新发布的流媒体数据流。
图2所示为根据本发明的较佳实施例提供的网页上数据流控制的系统的示意图。如图2所示,本发明的较佳实施例提供的网页上数据流控制的系统包括发送端201、流媒体服务器202、接收端203、计算器204、比较器205及信息发布服务器206,所述发送端201通过所述流媒体服务器202与所述接收端203相连,所述流媒体服务器202通过所述计算器204与所述比较器205相连,所述比较器205通过所述信息发布服务器206与所述流媒体服务器202相连。所述发送端201,用于与流媒体服务器202建立连接,并将获取的流媒体数据信息发送至所述流媒体服务器202。所述接收端203,用于向所述流媒体服务器202发送流媒体数据请求。所述流媒体服务器202,用于将自身每秒获取的字节数信息通知计算器204,还用于接收到所述接收端203发送的流媒体数据请求后,通知所述计算器204进行周期性流量统计。所述计算器204,用于根据所述流媒体服务器202发送的每秒获取的字节数信息,计算并获取周期平均流量值,并将所述周期平均流量值发送给比较器205。所述比较器205,用于比较所述周期平均流量值与自身存储的第一预设值并将比较结果发送至信息发布服务器206。所述信息发布服务器206,用于根据所述比较结果,进行流量控制。关于上述系统的操作流程同上述方法所述,故于此不再赘述。
综上所述,根据本发明的较佳实施例提供的网页上数据流控制的方法及系统,发送端及接收端分别与流媒体服务器建立连接。所述发送端将获取的流媒体数据信息发送至所述流媒体服务器,所述流媒体服务器将自身每秒获取的字节数信息通知计算器。所述流媒体服务器接收到所述接收端发送的流媒体数据请求后,所述流媒体服务器通知所述计算器进行周期性流量统计。所述计算器根据所述流媒体服务器发送的每秒获取的字节数信息,计算并获取周期平均流量值,并将所述周期平均流量值发送给比较器。有效避免因短时间无流量造成服务器判断失误。所述比较器比较所述周期平均流量值与自身存储的第一预设值并将比较结果发送至信息发布服务器。所述信息发布服务器根据所述比较结果,进行流量控制。如此,可以在网页上流畅播放音视频,保证了视频会议质量。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。