13Μάι

Flash video player από τον Chris Brimelow

, 13 Μαΐου 2008 | ΔΩΡΕΑΝ ΥΛΙΚΟ | 0 Σχόλια

Ο Chris Brimelow, από το www.chrisbrimelow.com, έφτιαξε ένα Flash video player, το οποίο είναι εμπνευσμένο από το Hulu video player.
Chris Brimelow flash 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.width7;
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.x12) / 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.x12) / 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.x12) / 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 μας.

Ο Σπύρος Παπασπυρόπουλος είναι βραβευμένος Web Professional που δραστηριοποιείται στον χώρο του επαγγελματκού Web Design και του Search Engine Optimisation (SEO) από το 1999. Το 2004 ίδρυσε μαζί με τον Γιάννη Ευσταθίου την βραβευμένη εταιρία x2interactive Web Agency και το 2008 το Web Design Blog.

Σχολιάστε

Back to top

Recent comments

  • Πολυ καλο αθρο πραγματικα!

    Η σωστή αρχιτεκτονική ενός website και τα οφέλη της
  • Πολύ χρήσιμη η λίστα με τα online tools. Ο επιτυχημένος σχεδιασμός μιας ιστοσελίδας βοηθά σε δύο κατευθύνσεις. Η πρώτη είναι ότι βελτιώνει την εμπειρία του επισκέπτη της ιστοσελίδας με συνέπεια ο τελευταίος να βλέπει περισσότερες σελίδες και να μένει περισσότερο χρόνο σε αυτή. Η δεύτερη είναι ότι επειδή ακριβώς βελτιώνονται τα στατιστικά στοιχεία της ιστοσελίδας, όπως το bounce rate, ο μέσος χρόνος παραμονής στην ιστοσελίδα και ο αριθμός των σελίδων ανά επίσκεψη, βελτιώνεται και η κατάταξη της ιστοσελίδας στα οργανικά αποτελέσματα της Google.

    10+1 Χρήσιμα website και on line tools

Latest From Twitter