Flash video player από τον Chris Brimelow
Ο Chris Brimelow, από το www.chrisbrimelow.com, έφτιαξε ένα Flash video player, το οποίο είναι εμπνευσμένο από το Hulu video player.
Σύμφωνα με τον Chris, η δική του έκδοση δεν έχει όλες τις λειτουργίες και τις επιλογές που προσφέρει το Hulu player και δεν χρησιμοποιεί Flash Media Server, αλλά progressive download. Παρ’ όλα αυτά είναι ένας πολύ καλός Player που αξίζει την προσοχή σας. Για να δείτε video encoded σε H.264 (.mp4), θα πρέπει να εγκαταστήσετε τον τελευταίο Flash player της Adobe.
Παρακάτω μπορείτε να δείτε τον πηγαίο κώδικα ο οποίος βρίσκεται και στο .fla αρχείο.
import caurina.transitions.*;var conn:NetConnection = new NetConnection();conn.connect(null);var stream:NetStream = new NetStream(conn);stream.play(“http://chrisbrimelow.com/blog/juno.mp4”);var metaListener:Object = new Object();metaListener.onMetaData = theMeta;stream.client = metaListener;var st:SoundTransform = new SoundTransform();stream.soundTransform = st;var video:Video = new Video();video.attachNetStream(stream);video.height = 360;video.x = 70;video.y = 0;video_mc.addChild(video);barBg_mc.thumb_mc.mouseEnabled = false;barBg_mc.thumb_mc.alpha = 0;barBg_mc.track_mc.buttonMode = true;barBg_mc.speaker_mc.buttonMode = true;barBg_mc.toggle_mc.buttonMode = true;bigPlay_mc.buttonMode = true;barBg_mc.volScrubber_mc.volThumb_mc.buttonMode = true;stage.addEventListener(Event.ENTER_FRAME, enterFrame);stage.addEventListener(MouseEvent.MOUSE_OVER, getInterface);stage.addEventListener(MouseEvent.MOUSE_OUT, removeInterface);barBg_mc.speaker_mc.addEventListener(MouseEvent.CLICK, mute);barBg_mc.speaker_mc.addEventListener(MouseEvent.MOUSE_OVER, rollOnSpeaker);barBg_mc.speaker_mc.addEventListener(MouseEvent.MOUSE_OUT, rollOffSpeaker);barBg_mc.toggle_mc.addEventListener(MouseEvent.CLICK, pause);barBg_mc.toggle_mc.addEventListener(MouseEvent.MOUSE_OVER, rollOnToggle);barBg_mc.toggle_mc.addEventListener(MouseEvent.MOUSE_OUT, rollOffToggle);bigPlay_mc.addEventListener(MouseEvent.CLICK, pause);barBg_mc.track_mc.addEventListener(MouseEvent.MOUSE_OVER, trackOver);barBg_mc.track_mc.addEventListener(MouseEvent.MOUSE_OUT, trackOut);barBg_mc.track_mc.addEventListener(MouseEvent.CLICK, goToSecond);barBg_mc.track_mc.addEventListener(MouseEvent.MOUSE_DOWN, trackDown);barBg_mc.track_mc.addEventListener(MouseEvent.MOUSE_UP, trackUp);barBg_mc.volScrubber_mc.volThumb_mc.addEventListener(MouseEvent.MOUSE_DOWN, volDown);stage.addEventListener(MouseEvent.MOUSE_UP, volUp);var xOffset:Number;var xMin:Number = 13;var xMax:Number = 309;var volOffset:Number;var volxMin:Number = 0;var volxMax:Number = barBg_mc.volScrubber_mc.volTrack_mc.width – 7;var volPercent:Number;var totalLength:uint;function theMeta(data:Object):void{totalLength = data.duration;}function enterFrame(e:Event):void{var nowSecs:Number = Math.floor(stream.time);var totalSecs:Number = Math.round(totalLength);if(nowSecs> 0){barBg_mc.timerText.text = videoTimeConvert(nowSecs) + ” / “ + videoTimeConvert(totalSecs);var amountPlayed:Number = stream.time / totalLength;var amountLoaded:Number = stream.bytesLoaded / stream.bytesTotal;barBg_mc.playStatus_mc.x = 46;barBg_mc.playStatus_mc.width = 294 * amountPlayed – 1;barBg_mc.dlStatus_mc.x = 46;barBg_mc.dlStatus_mc.width = 294 * amountLoaded + 3;}}function getInterface(e:MouseEvent):void{if(mouseX> 70 && mouseX <710 && mouseY> 0 && mouseY <360)Tweener.addTween(barBg_mc, {alpha:1, time:3});}function removeInterface(e:MouseEvent):void{Tweener.addTween(barBg_mc, {alpha:0, time:3});}function trackOver(e:MouseEvent):void{stage.addEventListener(MouseEvent.MOUSE_MOVE, startFollow);xOffset = mouseX – barBg_mc.thumb_mc.x;}function trackOut(e:MouseEvent):void{stage.removeEventListener(MouseEvent.MOUSE_MOVE, startFollow);barBg_mc.thumb_mc.alpha = 0;}function startFollow(e:MouseEvent):void{barBg_mc.thumb_mc.alpha = 1;barBg_mc.thumb_mc.x = barBg_mc.mouseX – (barBg_mc.thumb_mc.width / 2) + 2;if(barBg_mc.thumb_mc.x <= xMin)barBg_mc.thumb_mc.x = xMin;if(barBg_mc.thumb_mc.x>= xMax)barBg_mc.thumb_mc.x = xMax;stage.addEventListener(Event.ENTER_FRAME, getTimeText);e.updateAfterEvent();}function getTimeText(e:Event):void{var percentAcross:Number = (barBg_mc.thumb_mc.x – 12) / barBg_mc.track_mc.width;barBg_mc.thumb_mc.trackTime_mc.text = videoTimeConvert(totalLength * percentAcross);}function goToSecond(e:MouseEvent):void{if(barBg_mc.track_mc.mouseX <barBg_mc.dlStatus_mc.width){var percentAcross:Number = (barBg_mc.thumb_mc.x – 12) / barBg_mc.track_mc.width;stream.seek(totalLength * percentAcross);}}function trackDown(e:MouseEvent):void{stage.addEventListener(MouseEvent.MOUSE_MOVE, scrubTo);xOffset = mouseX – barBg_mc.thumb_mc.x;}function trackUp(e:MouseEvent):void{stage.removeEventListener(MouseEvent.MOUSE_MOVE, scrubTo);}function scrubTo(e:MouseEvent):void{if(barBg_mc.track_mc.mouseX <barBg_mc.dlStatus_mc.width){var percentAcross:Number = (barBg_mc.thumb_mc.x – 12) / barBg_mc.track_mc.width;stream.seek(totalLength * percentAcross);}}function pause(e:MouseEvent):void{stream.togglePause();if(barBg_mc.toggle_mc.currentFrame == 1){bigPlay_mc.alpha = 1;barBg_mc.toggle_mc.gotoAndStop(2);}else{bigPlay_mc.alpha = 0;barBg_mc.toggle_mc.gotoAndStop(1);}}function rollOnToggle(e:MouseEvent):void{barBg_mc.toggle_mc.alpha = .5;}function rollOffToggle(e:MouseEvent):void{barBg_mc.toggle_mc.alpha = 1;}function mute(e:MouseEvent):void{if(barBg_mc.speaker_mc.currentFrame == 1){st.volume = 0;stream.soundTransform = st;barBg_mc.speaker_mc.gotoAndStop(2);}else{st.volume = volPercent;stream.soundTransform = st;barBg_mc.speaker_mc.gotoAndStop(1);}}function rollOnSpeaker(e:MouseEvent):void{barBg_mc.speaker_mc.alpha = .5;}function rollOffSpeaker(e:MouseEvent):void{barBg_mc.speaker_mc.alpha = 1;}function volDown(e:MouseEvent):void{stage.addEventListener(MouseEvent.MOUSE_MOVE, volAdjust);}function volUp(e:MouseEvent):void{stage.removeEventListener(MouseEvent.MOUSE_MOVE, volAdjust);}function volAdjust(e:MouseEvent):void{barBg_mc.volScrubber_mc.volThumb_mc.x = barBg_mc.volScrubber_mc.volTrack_mc.mouseX;if(barBg_mc.volScrubber_mc.volThumb_mc.x <= volxMin)barBg_mc.volScrubber_mc.volThumb_mc.x = volxMin;if(barBg_mc.volScrubber_mc.volThumb_mc.x>= volxMax)barBg_mc.volScrubber_mc.volThumb_mc.x = volxMax;volPercent = barBg_mc.volScrubber_mc.volThumb_mc.x / volxMax;if(barBg_mc.speaker_mc.currentFrame == 1)st.volume = volPercent;stream.soundTransform = st;e.updateAfterEvent();}var displayHours:Boolean = true;function videoTimeConvert(myTime):String{var tempNum = myTime;var minutes = Math.floor(tempNum / 60);if (displayHours){var hours = Math.floor(minutes / 60);}var seconds = Math.round(tempNum – (minutes * 60));if (seconds <10){seconds = “0” + seconds;}if (minutes <10){minutes = “0” + minutes;}if (displayHours){if (hours <10){hours = “0” + hours;}}var currentTimeConverted = hours + “:” + minutes + “:” + seconds;return currentTimeConverted;}video.width = 640;
ΧΡΗΣΙΜΗ ΠΛΗΡΟΦΟΡΙΑ: Το άρθρο Flash video player από τον Chris Brimelow γράφτηκε από το WebDesignBlog. Η ομάδα μας σας υπενθυμίζει πως αν θέλετε να ενημερώνεστε για τα νέα του διαδικτύου και για επιλεγμένα άρθρα μας, μπορείτε να γραφτείτε εύκολα στο Newsletter μας ή στο RSS Feed μας.