Changeset 960
- Timestamp:
- 04/27/10 17:08:40 (3 years ago)
- Location:
- trunk/fl5
- Files:
-
- 7 edited
-
player.swf (modified) (previous)
-
src/com/longtailvideo/jwplayer/events/MediaEvent.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/media/HTTPMediaProvider.as (modified) (4 diffs)
-
src/com/longtailvideo/jwplayer/media/MediaProvider.as (modified) (2 diffs)
-
src/com/longtailvideo/jwplayer/media/SoundMediaProvider.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/media/VideoMediaProvider.as (modified) (3 diffs)
-
src/com/longtailvideo/jwplayer/player/PlayerVersion.as (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fl5/src/com/longtailvideo/jwplayer/events/MediaEvent.as
r806 r960 189 189 var defaults:MediaEvent = new MediaEvent(""); 190 190 191 if (this.type == MediaEvent.JWPLAYER_MEDIA_META) { 192 for (var s:String in metadata) { 193 retString += ' ' + s + '="' + metadata[s] + '"'; 194 } 195 } else { 196 if (bufferPercent != defaults.bufferPercent) retString += ' bufferPercent="' + bufferPercent + '"'; 197 if (duration != defaults.duration) retString += ' duration="' + duration + '"'; 198 if (position != defaults.position) retString += ' position="' + position + '"'; 199 if (offset != defaults.offset) retString += ' offset="' + offset + '"'; 200 if (volume != defaults.volume) retString += ' volume="' + volume + '"'; 201 if (mute != defaults.mute) retString += ' mute="' + mute + '"'; 202 if (message != defaults.message) retString += ' message="' + message + '"'; 191 for (var s:String in metadata) { 192 retString += ' ' + s + '="' + metadata[s] + '"'; 203 193 } 194 195 if (bufferPercent != defaults.bufferPercent) retString += ' bufferPercent="' + bufferPercent + '"'; 196 if (duration != defaults.duration) retString += ' duration="' + duration + '"'; 197 if (position != defaults.position) retString += ' position="' + position + '"'; 198 if (offset != defaults.offset) retString += ' offset="' + offset + '"'; 199 if (volume != defaults.volume) retString += ' volume="' + volume + '"'; 200 if (mute != defaults.mute) retString += ' mute="' + mute + '"'; 201 if (message != defaults.message) retString += ' message="' + message + '"'; 204 202 205 203 retString += ' id="' + id + '"' -
trunk/fl5/src/com/longtailvideo/jwplayer/media/HTTPMediaProvider.as
r957 r960 236 236 /** Resume playing. **/ 237 237 override public function play():void { 238 _stream.resume(); 238 239 if (!_positionInterval) { 239 240 _positionInterval = setInterval(positionInterval, 100); 240 241 } 241 if (!shouldBuffer) { 242 _stream.resume(); 243 super.play(); 244 } else { 245 setState(PlayerState.BUFFERING); 246 } 247 } 248 249 /** Calculate how much of the buffer time has been loaded **/ 250 protected function get bufferFill():Number { 251 return _stream.bufferTime > 0 ? Math.floor(_stream.bufferLength / _stream.bufferTime * 100) : 0; 252 } 253 254 /** Figure out whether or not to buffer, based on the amount loaded **/ 255 protected function get shouldBuffer():Boolean { 256 return (bufferFill < 50); 257 } 258 259 /** Returns true if the required buffer time has been loaded **/ 260 protected function get bufferFull():Boolean { 261 var streamTime:Number = Math.min(_stream.time, item.duration); 262 var bufferTime:Number = _stream.bufferTime < (item.duration - streamTime) ? _stream.bufferTime : Math.floor(Math.abs(item.duration - streamTime)); 263 return (bufferFill > 95 && state == PlayerState.BUFFERING && _bufferFull == false && bufferTime > 0); 264 } 242 super.play(); 243 } 244 265 245 266 246 /** Interval for the position progress **/ 267 247 protected function positionInterval():void { 268 var percentoffset:Number = 0; 269 var bufferPercent:Number = 0; 270 248 var pos:Number = Math.round(_stream.time * 10) / 10; 249 var percentoffset:Number; 250 if (_mp4) { 251 pos += _timeoffset; 252 } 253 254 var bufferPercent:Number; 255 var bufferFill:Number; 271 256 if (item.duration > 0 && _stream && _stream.bytesTotal > 0) { 272 257 percentoffset = Math.round(_timeoffset / item.duration * 100); 273 258 bufferPercent = (_stream.bytesLoaded / _stream.bytesTotal) * (1 - _timeoffset / item.duration) * 100; 274 } 275 276 _position = Math.round(_stream.time * 10) / 10; 277 if (_mp4) { 278 _position += _timeoffset; 279 } 280 259 var bufferTime:Number = _stream.bufferTime < (item.duration - pos) ? _stream.bufferTime : Math.round(item.duration - pos); 260 bufferFill = _stream.bufferTime == 0 ? 0 : Math.ceil(_stream.bufferLength / bufferTime * 100); 261 } else { 262 percentoffset = 0; 263 bufferPercent = 0; 264 bufferFill = _stream.bufferLength/_stream.bufferTime * 100; 265 } 266 281 267 if (!_bandwidthChecked && _stream.bytesLoaded > 0 && _stream.bytesLoaded < _stream.bytesTotal) { 282 268 _bandwidthChecked = true; … … 285 271 } 286 272 287 if ( shouldBuffer&& state == PlayerState.PLAYING) {273 if (bufferFill < 50 && state == PlayerState.PLAYING) { 288 274 _bufferFull = false; 289 275 _stream.pause(); 290 276 setState(PlayerState.BUFFERING); 291 } else if (bufferF ull) {277 } else if (bufferFill > 95 && state == PlayerState.BUFFERING && _bufferFull == false) { 292 278 _bufferFull = true; 293 279 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL); … … 298 284 _bufferingComplete = true; 299 285 } 300 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_META, {metadata: {loaded:_stream.bytesLoaded, total:_stream.bytesTotal, offset:_timeoffset}}); 301 sendBufferEvent(bufferPercent, _timeoffset); 286 sendBufferEvent(bufferPercent, _timeoffset, {loaded:_stream.bytesLoaded, total:_stream.bytesTotal, offset:_timeoffset}); 302 287 } 303 288 … … 305 290 return; 306 291 } 292 307 293 308 if (_position < item.duration) { 294 if (pos < item.duration) { 295 _position = pos; 309 296 if (_position >= 0) { 310 297 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_TIME, {position: _position, duration: item.duration, offset: _timeoffset}); -
trunk/fl5/src/com/longtailvideo/jwplayer/media/MediaProvider.as
r843 r960 274 274 275 275 /** Dispatches buffer change notifications **/ 276 protected function sendBufferEvent(bufferPercent:Number, offset:Number=0 ):void {276 protected function sendBufferEvent(bufferPercent:Number, offset:Number=0, metadata:Object=null):void { 277 277 if ((_bufferPercent != bufferPercent || bufferPercent == 0) && 0 <= bufferPercent < 100) { 278 278 _bufferPercent = bufferPercent; … … 281 281 'offset': offset, 282 282 'duration': _item.duration, 283 'position': Math.max(0, _position) 283 'position': Math.max(0, _position), 284 'metadata': metadata 284 285 }; 285 286 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_BUFFER, obj); -
trunk/fl5/src/com/longtailvideo/jwplayer/media/SoundMediaProvider.as
r956 r960 168 168 _bufferingComplete = true; 169 169 } 170 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_META, {metadata: {loaded:_sound.bytesLoaded, total:_sound.bytesTotal}}); 171 sendBufferEvent(bufferPercent); 170 sendBufferEvent(bufferPercent, 0, {loaded:_sound.bytesLoaded, total:_sound.bytesTotal}); 172 171 } 173 172 -
trunk/fl5/src/com/longtailvideo/jwplayer/media/VideoMediaProvider.as
r957 r960 137 137 _positionInterval = setInterval(positionHandler, 100); 138 138 } 139 // Don't resume the stream if it should continue buffering 140 if (!shouldBuffer) { 141 _stream.resume(); 142 super.play(); 143 } else { 144 setState(PlayerState.BUFFERING); 145 } 146 } 147 148 /** Calculate how much of the buffer time has been loaded **/ 149 protected function get bufferFill():Number { 150 return _stream.bufferTime > 0 ? Math.floor(_stream.bufferLength / _stream.bufferTime * 100) : 0; 151 } 152 153 /** Figure out whether or not to buffer, based on the amount loaded **/ 154 protected function get shouldBuffer():Boolean { 155 return (bufferFill < 50); 156 } 157 158 /** Returns true if the required buffer time has been loaded **/ 159 protected function get bufferFull():Boolean { 160 var streamTime:Number = Math.min(_stream.time, item.duration); 161 var bufferTime:Number = _stream.bufferTime < (item.duration - streamTime) ? _stream.bufferTime : Math.floor(Math.abs(item.duration - streamTime)); 162 return (bufferFill > 95 && state == PlayerState.BUFFERING && _bufferFull == false && bufferTime > 0); 163 } 139 _stream.resume(); 140 super.play(); 141 } 142 164 143 165 144 /** Interval for the position progress **/ … … 170 149 } 171 150 172 if (shouldBuffer && state == PlayerState.PLAYING) { 151 var _streamTime:Number = Math.min(_stream.time, item.duration); 152 var bufferPercent:Number = _stream.bytesTotal > 0 ? _stream.bytesLoaded / _stream.bytesTotal * 100 : 0; 153 var bufferTime:Number = _stream.bufferTime < (item.duration - _streamTime) ? _stream.bufferTime : Math.floor(Math.abs(item.duration - _streamTime)); 154 var bufferFill:Number = bufferTime == 0 ? 100 : Math.floor(_stream.bufferLength / bufferTime * 100); 155 156 157 if (bufferFill < 50 && state == PlayerState.PLAYING) { 173 158 _bufferFull = false; 174 159 _stream.pause(); 175 160 setState(PlayerState.BUFFERING); 176 } else if (bufferF ull) {161 } else if (bufferFill > 95 && state == PlayerState.BUFFERING && _bufferFull == false && bufferTime > 0) { 177 162 _bufferFull = true; 178 163 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL); 179 164 } 180 165 181 var bufferPercent:Number = _stream.bytesTotal > 0 ? _stream.bytesLoaded / _stream.bytesTotal * 100 : 0;182 183 166 if (!_bufferingComplete) { 184 167 if (bufferPercent == 100 && _bufferingComplete == false) { 185 168 _bufferingComplete = true; 186 169 } 187 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_META, {metadata: {loaded:_stream.bytesLoaded, total:_stream.bytesTotal}}); 188 sendBufferEvent(bufferPercent); 170 sendBufferEvent(bufferPercent, 0, {loaded:_stream.bytesLoaded, total:_stream.bytesTotal}); 189 171 } 190 172 … … 193 175 } 194 176 195 _position = Math.round(_stream .time * 10) / 10;177 _position = Math.round(_streamTime * 10) / 10; 196 178 197 179 if (position < item.duration) { -
trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as
r957 r960 3 3 4 4 public class PlayerVersion { 5 protected static var _version:String = "5.2.9 57";5 protected static var _version:String = "5.2.960"; 6 6 7 7 public static function get version():String {
Note: See TracChangeset
for help on using the changeset viewer.
