player.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. var LSS_SITE = 'http://cdn.aodianyun.com';
  2. //var LSS_SITE = 'http://192.168.1.27/demo';
  3. var lssHandle,lssFunName,lssFunInterval,lssConf;
  4. function aodianPlayer(conf){
  5. var conf = conf;
  6. if (!conf.container || conf.container == "" || !conf.player.name || conf.player.name == "") {
  7. console.log("缺少必要的参数:container、player.name");
  8. return;
  9. }
  10. var players = new Array('lssplayer','jwplayer','ckplayer');
  11. var playersCheck = false;
  12. for(var i in players){
  13. if(players[i] == conf.player.name){
  14. playersCheck = true;
  15. break;
  16. }
  17. }
  18. if(!playersCheck){
  19. console.log("播放器类型错误");
  20. return;
  21. }
  22. //判断手机还是pc
  23. var userAgentInfo = navigator.userAgent;
  24. var Agents = ["Android","iPhone","SymbianOS","Windows Phone","iPad","iPod"];
  25. var isPc = true;
  26. for(var v = 0; v < Agents.length; v++){
  27. if(userAgentInfo.indexOf(Agents[v]) > 0){
  28. isPc = false;
  29. break;
  30. }
  31. }
  32. conf.isPc = isPc;
  33. var playerScript = LSS_SITE + '/lss/' + conf.player.name + '/player.js';
  34. if(conf.player.name == 'lssplayer'){
  35. if(conf.rtmpUrl && conf.rtmpUrl != ''){
  36. //var mode = /^rtmp\:\/\/(\d{1,8})\.lssplay\.aodianyun\.com\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?$/;
  37. var mode = /^rtmp\:\/\/(.*)\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?$/;
  38. if(!mode.test(conf.rtmpUrl)){
  39. console.log("rtmp地址格式错误");
  40. return;
  41. }
  42. var arr = conf.rtmpUrl.match(mode);
  43. //conf.uin = arr[1];
  44. conf.cname = arr[1];
  45. conf.app = arr[2];
  46. conf.key = '';
  47. conf.ck = arr[3] ? arr[3] : '';
  48. conf.pk = arr[6] ? arr[6] : '';
  49. conf.stream = arr[5] + conf.pk;;
  50. //conf.addr = 'rtmp://'+ conf.uin +'.lssplay.aodianyun.com/' + conf.app + conf.ck;
  51. conf.addr = 'rtmp://'+ conf.cname +'/' + conf.app + conf.ck;
  52. if(conf.hlsUrl && conf.hlsUrl != ''){
  53. // var mode = /^http\:\/\/(.*)(\:8080)?\/([a-z\_\-A-Z\-0-9]*)\/([a-z\_\-A-Z\-0-9]*)\.m3u8$/;
  54. // if(!mode.test(conf.hlsUrl)){
  55. // console.log("hls地址格式错误");
  56. // return;
  57. // }
  58. if(conf.isPc == false){
  59. playerScript = LSS_SITE + '/lss/videojs/video.js';
  60. }
  61. }
  62. }
  63. else{
  64. if(!conf.url || conf.url == ""){
  65. console.log("缺少必要的参数:url");
  66. return;
  67. }
  68. var mode = /^rtmp\:\/\/(.*)\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?\/([a-z\_\-A-Z\-0-9]*)(\?k\=([a-z0-9]*)\&t\=\d{10,11})?$/;
  69. if(!mode.test(conf.url)){
  70. console.log("发布地址格式错误");
  71. return;
  72. }
  73. var arr = conf.url.match(mode);
  74. //conf.uin = arr[1];
  75. conf.cname = arr[1];
  76. conf.app = arr[2];
  77. conf.key = '';
  78. conf.ck = arr[3] ? arr[3] : '';
  79. conf.pk = arr[6] ? arr[6] : '';
  80. conf.stream = arr[5] + conf.pk;;
  81. //conf.addr = 'rtmp://'+ conf.uin +'.lssplay.aodianyun.com/' + conf.app + conf.ck;
  82. conf.addr = 'rtmp://'+ conf.cname +'/' + conf.app + conf.ck;
  83. }
  84. }
  85. lssConf = conf;
  86. var layoutScript = document.createElement('script');
  87. layoutScript.type = 'text/javascript';
  88. layoutScript.charset = 'UTF-8';
  89. layoutScript.src = playerScript;
  90. document.getElementsByTagName("body")[0].appendChild(layoutScript);
  91. lssFunName = conf.player.name + 'Run';
  92. lssFunInterval = setInterval("lssFunLoad()",100);
  93. }
  94. function lssFunLoad(){
  95. if(lssFunName && lssFunName in window){
  96. clearInterval(lssFunInterval);
  97. lssHandle = eval("new "+lssFunName+"(lssConf);");
  98. }
  99. }