Changeset 2245
- Timestamp:
- 06/11/12 12:58:27 (11 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/hds/src/com/longtailvideo/jwplayer/media/HDSMediaProvider.as
r2244 r2245 28 28 import org.osmf.events.MediaPlayerStateChangeEvent; 29 29 import org.osmf.events.PlayEvent; 30 import org.osmf.events.TimeEvent; 30 31 import org.osmf.media.DefaultMediaFactory; 31 32 import org.osmf.media.MediaElement; … … 44 45 public class HDSMediaProvider extends MediaProvider { 45 46 /** OSMF player **/ 46 protected var _ player:MediaPlayer;47 protected var _osmfPlayer:MediaPlayer; 47 48 /**OSMF media container**/ 48 49 protected var _container:MediaContainer; … … 51 52 /** ID for the position interval. **/ 52 53 protected var _positionInterval:Number; 53 54 54 55 public function HDSMediaProvider() { 55 56 //OSMFSettings.enableStageVideo = false; 56 _ player = new MediaPlayer();57 _osmfPlayer = new MediaPlayer(); 57 58 _container = new MediaContainer(); 59 _osmfPlayer.addEventListener(TimeEvent.COMPLETE, completeEvent); 60 _osmfPlayer.addEventListener(BufferEvent.BUFFERING_CHANGE,bufferingChangeHandler); 61 _osmfPlayer.addEventListener(TimeEvent.CURRENT_TIME_CHANGE,positionHandler); 58 62 super("hds"); 59 63 } … … 80 84 _container.addMediaElement(_element); 81 85 super.load(itm); 82 _ player.media = _element;83 _ player.addEventListener(BufferEvent.BUFFERING_CHANGE,bufferingChangeHandler);84 _player.addEventListener(PlayEvent.PLAY_STATE_CHANGE, completeEvent); 86 _osmfPlayer.volume = config.mute ? 0 : config.volume; 87 _osmfPlayer.media = _element; 88 85 89 _element.addEventListener(MediaErrorEvent.MEDIA_ERROR,errorEvent); 86 clearInterval(_positionInterval);87 _positionInterval = setInterval(positionHandler, 200);88 }89 90 91 } 92 93 90 94 /** 91 95 * handles the position of the status bar 92 96 * 93 97 **/ 94 protected function positionHandler( ):void {95 96 var pos:Number = Math.round(Math.min(_ player.currentTime, Math.max(_player.duration, 0)) * 100) / 100;97 var timeRemaining:Number = _ player.duration > 0 ? (_player.duration - _player.currentTime) : _player.currentTime;98 protected function positionHandler(event:TimeEvent):void { 99 100 var pos:Number = Math.round(Math.min(_osmfPlayer.currentTime, Math.max(_osmfPlayer.duration, 0)) * 100) / 100; 101 var timeRemaining:Number = _osmfPlayer.duration > 0 ? (_osmfPlayer.duration - _osmfPlayer.currentTime) : _osmfPlayer.currentTime; 98 102 99 103 if (state != PlayerState.PLAYING) { … … 103 107 _position = pos; 104 108 105 if (position < _ player.duration) {109 if (position < _osmfPlayer.duration) { 106 110 if (position >= 0) { 107 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_TIME, {position: position, duration: _ player.duration});111 sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_TIME, {position: position, duration: _osmfPlayer.duration}); 108 112 } 109 113 } … … 116 120 private function bufferingChangeHandler(event:BufferEvent): void 117 121 { 118 if (_ player.buffering) {122 if (_osmfPlayer.buffering) { 119 123 sendBufferEvent(0); 120 124 setState(PlayerState.BUFFERING); 121 } else {125 } else if (_osmfPlayer.playing) { 122 126 123 127 dispatchEvent(new MediaEvent(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL)); 124 _item.duration = _ player.duration;128 _item.duration = _osmfPlayer.duration; 125 129 //fixes size issue 126 130 resize(_width,_height); 127 131 } 128 129 132 } 130 133 … … 133 136 * @param the play state change event 134 137 **/ 135 private function completeEvent(event:PlayEvent):void { 136 if (event.playState == PlayState.STOPPED) { 137 complete(); 138 } 138 private function completeEvent(event:TimeEvent):void { 139 complete(); 139 140 } 140 141 … … 144 145 **/ 145 146 private function errorEvent(event:MediaErrorEvent):void { 146 //for some reason i am not getting an error code, only a detail147 error( event.error.detail);147 Logger.log(event.error.detail); 148 error("OSMF Playback Error"); 148 149 } 149 150 150 151 /** Resume playback of the item. **/ 151 152 public override function play():void { 152 if (_ player.paused) {153 _ player.play();153 if (_osmfPlayer.paused) { 154 _osmfPlayer.play(); 154 155 } 155 156 super.play(); 156 157 } 157 158 158 159 159 /** Pause playback of the item. **/ 160 160 public override function pause():void { 161 if (_ player.playing) {162 _ player.pause();161 if (_osmfPlayer.playing) { 162 _osmfPlayer.pause(); 163 163 } 164 164 super.pause(); … … 174 174 override public function seek(pos:Number):void { 175 175 176 _ player.seek(pos);177 178 //jw should restart on seek (move to MediaProvider.as?)179 if (_ player.paused) {176 _osmfPlayer.seek(pos); 177 178 //jw should restart on seek 179 if (_osmfPlayer.paused) { 180 180 play(); 181 181 } … … 185 185 /** Stop playing and loading the item. **/ 186 186 public override function stop():void { 187 188 if (_player.state == PlayState.PLAYING) { 189 _player.pause(); 190 _player.stop(); 191 clearInterval(_positionInterval); 192 _positionInterval = undefined; 193 _player.removeEventListener(BufferEvent.BUFFERING_CHANGE,bufferingChangeHandler); 194 _player.removeEventListener(PlayEvent.PLAY_STATE_CHANGE,completeEvent); 195 if (_element != null){ 196 _container.removeMediaElement(_element); 197 _element = null; 198 } 199 } 187 _osmfPlayer.stop(); 188 if (_element != null){ 189 _container.removeMediaElement(_element); 190 _element = null; 191 } 200 192 super.stop(); 201 193 } … … 209 201 **/ 210 202 public override function setVolume(vol:Number):void { 211 _ player.volume = vol/100;203 _osmfPlayer.volume = vol/100; 212 204 super.setVolume(vol); 213 205 }
Note: See TracChangeset
for help on using the changeset viewer.
