winlin

add more buffer

@@ -319,8 +319,13 @@ @@ -319,8 +319,13 @@
319 <li><a id="btn_bt_1_0" href="#">1秒(低延迟)</a></li> 319 <li><a id="btn_bt_1_0" href="#">1秒(低延迟)</a></li>
320 <li><a id="btn_bt_2_0" href="#">2秒(较低延时)</a></li> 320 <li><a id="btn_bt_2_0" href="#">2秒(较低延时)</a></li>
321 <li><a id="btn_bt_3_0" href="#">3秒(流畅播放)</a></li> 321 <li><a id="btn_bt_3_0" href="#">3秒(流畅播放)</a></li>
  322 + <li><a id="btn_bt_4_0" href="#">4秒(流畅播放)</a></li>
322 <li><a id="btn_bt_5_0" href="#">5秒(网速较低)</a></li> 323 <li><a id="btn_bt_5_0" href="#">5秒(网速较低)</a></li>
  324 + <li><a id="btn_bt_6_0" href="#">6秒(网速较低)</a></li>
  325 + <li><a id="btn_bt_8_0" href="#">8秒(网速较低)</a></li>
323 <li><a id="btn_bt_10_0" href="#">10秒(无所谓延迟)</a></li> 326 <li><a id="btn_bt_10_0" href="#">10秒(无所谓延迟)</a></li>
  327 + <li><a id="btn_bt_15_0" href="#">15秒(无所谓延迟)</a></li>
  328 + <li><a id="btn_bt_20_0" href="#">20秒(无所谓延迟)</a></li>
324 <li><a id="btn_bt_30_0" href="#">30秒(流畅第一)</a></li> 329 <li><a id="btn_bt_30_0" href="#">30秒(流畅第一)</a></li>
325 </ul> 330 </ul>
326 </div> 331 </div>
@@ -334,8 +339,13 @@ @@ -334,8 +339,13 @@
334 <li><a id="btn_mbt_3_0" href="#">3秒(低延迟)</a></li> 339 <li><a id="btn_mbt_3_0" href="#">3秒(低延迟)</a></li>
335 <li><a id="btn_mbt_6_0" href="#">6秒(较低延时)</a></li> 340 <li><a id="btn_mbt_6_0" href="#">6秒(较低延时)</a></li>
336 <li><a id="btn_mbt_9_0" href="#">9秒(流畅播放)</a></li> 341 <li><a id="btn_mbt_9_0" href="#">9秒(流畅播放)</a></li>
  342 + <li><a id="btn_mbt_12_0" href="#">12秒(流畅播放)</a></li>
337 <li><a id="btn_mbt_15_0" href="#">15秒(网速较低)</a></li> 343 <li><a id="btn_mbt_15_0" href="#">15秒(网速较低)</a></li>
  344 + <li><a id="btn_mbt_18_0" href="#">18秒(网速较低)</a></li>
  345 + <li><a id="btn_mbt_24_0" href="#">24秒(网速较低)</a></li>
338 <li><a id="btn_mbt_30_0" href="#">30秒(无所谓延迟)</a></li> 346 <li><a id="btn_mbt_30_0" href="#">30秒(无所谓延迟)</a></li>
  347 + <li><a id="btn_mbt_45_0" href="#">45秒(无所谓延迟)</a></li>
  348 + <li><a id="btn_mbt_60_0" href="#">60秒(无所谓延迟)</a></li>
339 <li><a id="btn_mbt_90_0" href="#">90秒(流畅第一)</a></li> 349 <li><a id="btn_mbt_90_0" href="#">90秒(流畅第一)</a></li>
340 </ul> 350 </ul>
341 </div> 351 </div>
@@ -479,6 +489,7 @@ @@ -479,6 +489,7 @@
479 * app, the app of url. 489 * app, the app of url.
480 * stream, the stream of url, can endwith .flv or .mp4 or nothing for RTMP. 490 * stream, the stream of url, can endwith .flv or .mp4 or nothing for RTMP.
481 * autostart, whether auto play the stream. 491 * autostart, whether auto play the stream.
  492 + * buffer, the buffer time in seconds.
482 * extra params: 493 * extra params:
483 * shp_identify, hls+ param. 494 * shp_identify, hls+ param.
484 * for example: 495 * for example:
@@ -493,6 +504,10 @@ @@ -493,6 +504,10 @@
493 // url set to: rtmp://demo:1935/live/livestream 504 // url set to: rtmp://demo:1935/live/livestream
494 srs_init_rtmp("#txt_url", "#main_modal"); 505 srs_init_rtmp("#txt_url", "#main_modal");
495 506
  507 + // consts for buffer and max buffer.
  508 + var bts = [0.1, 0.2, 0.3, 0.5, 0.8, 1, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30];
  509 + var mbts = [0.6, 0.9, 1.5, 2.4, 3, 6, 9, 12, 15, 18, 24, 30, 45, 60, 90];
  510 +
496 $("#main_modal").on("show", function(){ 511 $("#main_modal").on("show", function(){
497 if (srs_player) { 512 if (srs_player) {
498 return; 513 return;
@@ -511,7 +526,20 @@ @@ -511,7 +526,20 @@
511 526
512 srs_player = new SrsPlayer("player_id", srs_get_player_width(), srs_get_player_height()); 527 srs_player = new SrsPlayer("player_id", srs_get_player_width(), srs_get_player_height());
513 srs_player.on_player_ready = function() { 528 srs_player.on_player_ready = function() {
514 - select_buffer(0.5); 529 + var buffer_time = 0.5;
  530 +
  531 + if (query.buffer) {
  532 + for (var i = 0; i < bts.length - 1; i++) {
  533 + var cur = bts[i];
  534 + var next = bts[i+1];
  535 + if (Number(query.buffer) >= cur && Number(query.buffer) < next) {
  536 + buffer_time = cur;
  537 + break;
  538 + }
  539 + }
  540 + }
  541 +
  542 + select_buffer(buffer_time);
515 this.play(url); 543 this.play(url);
516 }; 544 };
517 srs_player.on_player_status = function(code, desc) { 545 srs_player.on_player_status = function(code, desc) {
@@ -591,6 +619,9 @@ @@ -591,6 +619,9 @@
591 if (rtmp.schema == "http") { 619 if (rtmp.schema == "http") {
592 url += "&schema=http"; 620 url += "&schema=http";
593 } 621 }
  622 + if (query.buffer) {
  623 + url += "&buffer=" + query.buffer;
  624 + }
594 $("#player_url").text($("#txt_url").val()).attr("href", url); 625 $("#player_url").text($("#txt_url").val()).attr("href", url);
595 626
596 $("#link_server").text(rtmp.server); 627 $("#link_server").text(rtmp.server);
@@ -708,7 +739,6 @@ @@ -708,7 +739,6 @@
708 } 739 }
709 740
710 if (true) { 741 if (true) {
711 - var bts = [0.1, 0.2, 0.3, 0.5, 0.8, 1, 2, 3, 5, 10, 30];  
712 for (var i = 0; i < bts.length; i++) { 742 for (var i = 0; i < bts.length; i++) {
713 var bt = bts[i]; 743 var bt = bts[i];
714 var bt_id = "#btn_bt_" + bt.toFixed(1).replace(".", "_"); 744 var bt_id = "#btn_bt_" + bt.toFixed(1).replace(".", "_");
@@ -716,13 +746,19 @@ @@ -716,13 +746,19 @@
716 var bt_fun = function(id, v){ 746 var bt_fun = function(id, v){
717 $(bt_id).click(function(){ 747 $(bt_id).click(function(){
718 select_buffer_time(id, v); 748 select_buffer_time(id, v);
  749 +
  750 + // remember the chagned buffer.
  751 + if (Number(query.buffer) != srs_player.buffer_time) {
  752 + query.buffer = srs_player.buffer_time;
  753 + apply_url_change();
  754 + }
  755 +
719 }); 756 });
720 }; 757 };
721 bt_fun(bt_id, bt); 758 bt_fun(bt_id, bt);
722 } 759 }
723 } 760 }
724 if (true) { 761 if (true) {
725 - var mbts = [0.6, 0.9, 1.5, 2.4, 3, 6, 9, 15, 30, 90];  
726 for (var i = 0; i < mbts.length; i++) { 762 for (var i = 0; i < mbts.length; i++) {
727 var mbt = mbts[i]; 763 var mbt = mbts[i];
728 var mbt_id = "#btn_mbt_" + mbt.toFixed(1).replace(".", "_"); 764 var mbt_id = "#btn_mbt_" + mbt.toFixed(1).replace(".", "_");