mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
refine bandwidth test client, provides js and as library
This commit is contained in:
parent
b1dd0218be
commit
c319cc6a40
12 changed files with 700 additions and 336 deletions
|
@ -27,6 +27,8 @@ function SrsBandwidth(container, width, height, private_object) {
|
|||
// the callback set data.
|
||||
this.percent = 0;
|
||||
this.status = "";
|
||||
this.report = "";
|
||||
this.server = "";
|
||||
}
|
||||
/**
|
||||
* user can set some callback, then start the bandwidth.
|
||||
|
@ -38,7 +40,7 @@ function SrsBandwidth(container, width, height, private_object) {
|
|||
* on_update_status(status:String):void, when srs bandwidth update the status.
|
||||
* status:String the human readable status text.
|
||||
*/
|
||||
SrsBandwidth.prototype.start = function(url) {
|
||||
SrsBandwidth.prototype.render = function(url) {
|
||||
if (url) {
|
||||
this.stream_url = url;
|
||||
}
|
||||
|
@ -49,6 +51,8 @@ SrsBandwidth.prototype.start = function(url) {
|
|||
flashvars.on_bandwidth_ready = "__srs_on_bandwidth_ready";
|
||||
flashvars.on_update_progress = "__srs_on_update_progress";
|
||||
flashvars.on_update_status = "__srs_on_update_status";
|
||||
flashvars.on_srs_info = "__srs_on_srs_info";
|
||||
flashvars.on_complete = "__srs_on_complete";
|
||||
|
||||
var params = {};
|
||||
params.wmode = "opaque";
|
||||
|
@ -75,7 +79,6 @@ SrsBandwidth.prototype.start = function(url) {
|
|||
/**
|
||||
* play the stream.
|
||||
* @param stream_url the url of stream, rtmp or http.
|
||||
* @param volume the volume, 0 is mute, 1 is 100%, 2 is 200%.
|
||||
*/
|
||||
SrsBandwidth.prototype.check_bandwidth = function(url) {
|
||||
this.stop();
|
||||
|
@ -107,6 +110,10 @@ SrsBandwidth.prototype.on_update_progress = function(percent) {
|
|||
}
|
||||
SrsBandwidth.prototype.on_update_status = function(status) {
|
||||
}
|
||||
SrsBandwidth.prototype.on_srs_info = function(srs_server, srs_primary_authors, srs_id, srs_pid, srs_server_ip) {
|
||||
}
|
||||
SrsBandwidth.prototype.on_complete = function(start_time, end_time, play_kbps, publish_kbps, play_bytes, publish_bytes, play_time, publish_time) {
|
||||
}
|
||||
function __srs_find_bandwidth(id) {
|
||||
for (var i = 0; i < SrsBandwidth.__bandwidths.length; i++) {
|
||||
var bandwidth = SrsBandwidth.__bandwidths[i];
|
||||
|
@ -129,8 +136,52 @@ function __srs_on_update_progress(id, percent) {
|
|||
bandwidth.percent = percent;
|
||||
bandwidth.on_update_progress(percent);
|
||||
}
|
||||
function __srs_on_update_status(id, status) {
|
||||
function __srs_on_update_status(id, code, data) {
|
||||
var bandwidth = __srs_find_bandwidth(id);
|
||||
|
||||
var status = "";
|
||||
switch(code){
|
||||
case "NetConnection.Connect.Failed":
|
||||
status = "连接服务器失败!";
|
||||
break;
|
||||
case "NetConnection.Connect.Rejected":
|
||||
status = "服务器拒绝连接!";
|
||||
break;
|
||||
case "NetConnection.Connect.Success":
|
||||
status = "连接服务器成功!";
|
||||
break;
|
||||
case "NetConnection.Connect.Closed":
|
||||
if (bandwidth.report) {
|
||||
return;
|
||||
}
|
||||
status = "连接已断开!";
|
||||
break;
|
||||
case "srs.bwtc.play.start":
|
||||
status = "开始测试下行带宽";
|
||||
break;
|
||||
case "srs.bwtc.play.stop":
|
||||
status = "下行带宽测试完毕," + data + "kbps,开始测试上行带宽。";
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
bandwidth.status = status;
|
||||
bandwidth.on_update_status(status);
|
||||
}
|
||||
function __srs_on_srs_info(id, srs_server, srs_primary_authors, srs_id, srs_pid, srs_server_ip) {
|
||||
var bandwidth = __srs_find_bandwidth(id);
|
||||
bandwidth.status = status;
|
||||
bandwidth.server = srs_server_ip;
|
||||
bandwidth.on_srs_info(srs_server, srs_primary_authors, srs_id, srs_pid, srs_server_ip);
|
||||
}
|
||||
function __srs_on_complete(id, start_time, end_time, play_kbps, publish_kbps, play_bytes, publish_bytes, play_time, publish_time) {
|
||||
var bandwidth = __srs_find_bandwidth(id);
|
||||
|
||||
var status = "检测结束: " + bandwidth.server + " 上行: " + publish_kbps + " kbps" + " 下行: " + play_kbps + " kbps"
|
||||
+ " 测试时间: " + Number((end_time - start_time) / 1000).toFixed(1) + " 秒";
|
||||
bandwidth.report = status;
|
||||
bandwidth.on_update_status(status);
|
||||
|
||||
bandwidth.on_complete(start_time, end_time, play_kbps, publish_kbps, play_bytes, publish_bytes, play_time, publish_time);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue