Changeset 1616
- Timestamp:
- 03/01/11 11:21:53 (2 years ago)
- Location:
- plugins/livestream/js
- Files:
-
- 22 added
- 4 deleted
- 1 edited
- 2 moved
-
assets/back.png (deleted)
-
assets/timer.png (deleted)
-
build/build.xml (added)
-
build/encode-images.py (added)
-
build/yuicompressor.jar (added)
-
doc/assets (added)
-
doc/assets/longtail.png (added)
-
doc/guides (added)
-
doc/guides/Makefile (added)
-
doc/guides/conf.py (added)
-
doc/guides/index.rst (added)
-
doc/guides/overview.rst (added)
-
livestream.js (moved) (moved from plugins/livestream/js/jwplayer.livestream.js) (1 diff)
-
src/as (added)
-
src/js (added)
-
src/js/livestream.js (added)
-
src/png (added)
-
src/png/back.png (added)
-
test/assets (added)
-
test/assets/jwplayer.js (added)
-
test/assets/player.swf (added)
-
test/assets/thumb.png (moved) (moved from plugins/livestream/js/test/thumb.png)
-
test/daterange.html (added)
-
test/dimensions.html (added)
-
test/index.html (modified) (1 diff)
-
test/jwplayer.js (deleted)
-
test/jwplayer.swf (deleted)
-
test/reconnects.html (added)
-
test/rtmp_ios.html (added)
Legend:
- Unmodified
- Added
- Removed
-
plugins/livestream/js/livestream.js
r1507 r1616 1 (function(jwplayer) { 2 3 4 /** This plugin can display screens around a live event. **/ 5 jwplayer.livestream = function(container,options,start,end) { 6 7 8 /** Options for the plugin. **/ 9 var _options = { 10 autostart: true, 11 duration: 0, 12 height: 405, 13 id: 'livestreamPlayer', 14 title: 'Live event', 15 width: 720 16 }; 17 /** DOM elements. **/ 18 var _container; 19 var _player; 20 var _overlay; 21 var _title; 22 var _subtitle; 23 var _image; 24 /** Dates to compare. **/ 25 var _currentDate; 26 var _startDate; 27 var _endDate; 28 /** Interval ID to animate reconnects. **/ 29 var _interval; 30 31 32 /** Constructor stuff. **/ 33 jwplayer.utils.extend(_options, options); 34 _setDates(start,end); 35 _setElements(container); 36 if(_currentDate < _startDate) { 37 _countDown(); 38 } else if (_currentDate > _endDate) { 39 _endScreen(); 40 } else { 41 _embedPlayer(); 42 } 43 44 45 /** Do the countdown. **/ 46 function _countDown() { 47 jwplayer.utils.css(_overlay,{display:'block'}); 48 _currentDate = new Date().getTime()/1000; 49 if(_currentDate > _startDate) { 50 _embedPlayer(); 51 } else { 52 var hours = Math.floor((_startDate -_currentDate)/3600); 53 var minutes = Math.floor(((_startDate -_currentDate)%3600)/60); 54 var seconds = Math.floor((_startDate -_currentDate)%60); 55 _subtitle.innerHTML = "Event starts in "+hours+" hours, "+minutes+" minutes, "+seconds+" seconds."; 56 setTimeout(_countDown,1000); 57 } 58 }; 59 60 61 /** Embed the actual player when the event is live. **/ 62 function _embedPlayer() { 63 jwplayer.utils.css(_overlay,{display:'none'}); 64 var agent = navigator.userAgent.toLowerCase(); 65 if(agent.match(/ip(hone|ad)/i) !== null && _options.manifest) { 66 _options.provider = undefined; 67 _options.streamer = undefined; 68 _options.file = _options.manifest; 69 } else { 70 _options.image = undefined; 71 } 72 jwplayer(_options.id).setup(_options); 73 jwplayer(_options.id).onError(_reConnect); 74 jwplayer(_options.id).onIdle(_endScreen); 75 }; 76 77 78 /** Display the replay screen. **/ 79 function _endScreen() { 80 _currentDate = new Date().getTime()/1000; 81 if(_currentDate < _endDate) { 82 _reConnect(); 83 } else { 84 _subtitle.innerHTML = "Event has ended. Replays will be available soon."; 85 jwplayer.utils.css(_overlay,{display:'block'}); 86 jwplayer(_options.id).remove(); 87 } 88 }; 89 90 91 /** Attempt a reconnect. **/ 92 function _reConnect() { 93 _subtitle.innerHTML = "Connection lost. Attempting to reconnect."; 94 jwplayer.utils.css(_overlay,{display:'block'}); 95 jwplayer(_options.id).remove(); 96 _interval = setInterval(_reConnectDot,500); 97 setTimeout(_reConnectEnd, 10000); 98 }; 99 100 101 function _reConnectDot() { 102 _subtitle.innerHTML += '.'; 103 }; 104 105 106 function _reConnectEnd() { 107 clearInterval(_interval); 108 _embedPlayer(); 109 }; 110 111 112 /** Set the dates for the first time. **/ 113 function _setDates(start,end) { 114 _currentDate = new Date().getTime()/1000; 115 if(start) { 116 _startDate = new Date(start).getTime()/1000; 117 } else { 118 _startDate = 0; 119 } 120 if(end) { 121 _endDate = new Date(end).getTime()/1000; 122 } else { 123 _endDate = new Date().getTime()/1000 + 24 * 3600; 124 } 125 }; 126 127 128 /** Inject and style all elements for the overlay. **/ 129 function _setElements(container) { 130 _container = document.getElementById(container); 131 jwplayer.utils.css(_container,{ 132 position: 'relative', 133 backgroundImage: 'url('+_options.image+')', 134 backgroundRepeat: 'no-repeat', 135 backgroundPosition: 'center center', 136 height:_options.height, 137 width: _options.width 138 }); 139 _player = document.createElement("div"); 140 _player.setAttribute('id',_options.id); 141 _container.appendChild(_player); 142 _overlay = document.createElement("div"); 143 _container.appendChild(_overlay); 144 jwplayer.utils.css(_overlay,{ 145 display: 'none', 146 left: 0, 147 top: Math.round(_options.height/2)-78, 148 position: 'absolute', 149 height: 140, 150 width: _options.width, 151 backgroundImage:'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADtJREFUeNrszgENACAMwLCBf0+3ho2TtAp6qmmx23KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr8GnwADAMqOAQ8BbF7NAAAAAElFTkSuQmCC)' 152 }); 153 _image = document.createElement("div"); 154 _overlay.appendChild(_image); 155 jwplayer.utils.css(_image,{ 156 backgroundImage: 'url(data:image/png;base64,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%3D%3D)', 157 backgroundRepeat: 'no-repeat', 158 backgroundPosition: 'right center', 159 cssFloat: 'left', 160 width: '35%', 161 height: '100%' 162 }); 163 _title = document.createElement("div"); 164 _title.innerHTML = _options.title; 165 _overlay.appendChild(_title); 166 jwplayer.utils.css(_title,{ 167 color:'#FFF', 168 fontSize: 24, 169 lineHeight: 24, 170 fontWeight: 'bold', 171 fontFamily: 'Arial', 172 cssFloat: 'left', 173 width: '55%', 174 height: 48, 175 paddingLeft: 22, 176 paddingTop: 32, 177 margin: 0 178 }); 179 _subtitle = document.createElement("div"); 180 _subtitle.innerHTML = 'Waiting for event start...'; 181 _overlay.appendChild(_subtitle); 182 jwplayer.utils.css(_subtitle,{ 183 color:'#FFF', 184 fontSize: 14, 185 fontFamily: 'Arial', 186 cssFloat: 'left', 187 width: '55%', 188 paddingLeft: 22, 189 paddingTop: 12, 190 margin: 0 191 }); 192 }; 193 194 195 return this; 196 197 198 }; 199 200 201 })(jwplayer); 1 (function(a){var b=function(j,i,q){var c;var l;var h;var e;var p;var s;function f(){g(i,{display:"block"});c=new Date().getTime()/1000;if(c>e){m()}else{var t=Math.floor((e-c)/3600);var u=Math.floor(((e-c)%3600)/60);var v=Math.floor((e-c)%60);p.innerHTML="Starting in "+t+" hours, "+u+" minutes, "+v+" seconds.";setTimeout(f,1000)}}function n(){c=new Date().getTime()/1000;if(c<l){o()}else{p.innerHTML="Event ended. Replays will be available soon.";g(i,{display:"block"})}}function r(){c=new Date().getTime()/1000;if(q.start){e=new Date(q.start*1000).getTime()/1000}else{e=0}if(q.end){l=new Date(q.end*1000).getTime()/1000}else{l=new Date().getTime()/1000+24*3600}s=document.createElement("div");i.appendChild(s);if(q.title){s.innerHTML=q.title}else{s.innerHTML="Live event."}p=document.createElement("div");i.appendChild(p);p.innerHTML="Waiting for event start...";if(c<e){f()}else{if(c>l){n()}else{m()}}j.onComplete(n);j.onError(n)}j.onReady(r);function m(){g(i,{display:"none"});j.play()}function o(){p.innerHTML="Attempting to (re)connect to stream.";g(i,{display:"block"});h=setInterval(d,500);setTimeout(k,10000)}function d(){p.innerHTML+="."}function k(){clearInterval(h);m()}this.resize=function(u,t){if(String(u).indexOf("px")>0){t=Number(t.substr(0,t.length-2));u=Number(u.substr(0,u.length-2))}g(i,{backgroundImage:"url(data:image/png;base64,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)",backgroundRepeat:"no-repeat",backgroundPosition:"left center",height:t,width:u});g(s,{color:"#FFF",fontFamily:"Arial",fontSize:"26px",fontWeight:"bold",height:"30px",lineHeight:"30px",left:"119px",overflow:"hidden",position:"absolute",top:Math.round(t/2-30)+"px",width:(u-120)+"px"});g(p,{color:"#FFF",fontFamily:"Arial",fontSize:"13px",height:"20px",left:"120px",overflow:"hidden",position:"absolute",top:Math.round(t/2+4)+"px",width:(u-120)+"px"})};function g(t,u){for(var v in u){t.style[v]=u[v]}}};a().registerPlugin("livestream",b)})(jwplayer); -
plugins/livestream/js/test/index.html
r1509 r1616 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 1 <html> 3 2 <head> 4 3 5 <title>Livestream plugin</title>6 7 <style type="text/css"> 8 body { background-color: #eee; padding: 40px; }9 </style> 10 <script type="text/javascript" src="jwplayer.js"></script>11 < script type="text/javascript" src="../jwplayer.livestream.js"></script>4 <title>Livestream Plugin Tests</title> 5 <style> 6 body { padding: 50px; font: 13px/20px Arial; background: #EEE; } 7 form,ul,p { margin-top: 20px; } 8 #player { -webkit-box-shadow: 0 0 5px #999; background: #000; } 9 hr { display: inline-block; width: 10px; border:0; } 10 </style> 12 11 13 12 </head> 14 13 <body> 15 14 16 <div id="container"></div> 17 <script type="text/javascript"> 18 jwplayer.livestream('container', 19 { 20 file: 'test.mp4', 21 flashplayer: "jwplayer.swf", 22 height: 406, 23 image:'thumb.png', 24 streamer:'rtmp://127.0.0.1/live', 25 title:'Live testing session of the JW Player LiveStream plugin', 26 width: 720 27 }, 28 '12/20/2010 17:00:00', 29 '12/20/2010 17:30:00' 30 ); 31 </script> 15 <h2>Livestream Plugin Tests</h2> 32 16 17 <ul> 18 <li><a href="daterange.html">Date Ranges</a></li> 19 <li><a href="reconnects.html">Reconnect Scenarios</a></li> 20 <li><a href="rtmp_ios.html">RTMP + iOS Streaming</a></li> 21 <li><a href="dimensions.html">Various Dimensions</a></li> 22 </ul> 33 23 24 <p> 25 A live streaming server running on localhost is required for these tests.<br/> 26 <a href="http://www.wowzamedia.com/store.html">Download</a> and <a href="http://www.wowzamedia.com/forums/content.php?217">startup</a> a free copy of WMS if you don't have one. 27 </p> 28 <p>This <a href="http://www.timestampgenerator.com/">timestamp generator</a> might also come in handy</p> 34 29 35 30 </body>
Note: See TracChangeset
for help on using the changeset viewer.
