Flash video player από τον Chris Brimelow

Δημιουργήθηκε 13 May 2008 από Σπύρος Παπασπυρόπουλος | Web Professional

Ο 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;

BuzzCullBobitdigmefreestuffdeliciousgoogle bookmarksFacebookTwitter

Σχετικά άρθρα



Σχολιάστε

Advertise Here
Advertise Here


Translate to your language

    Translate from:

    Translate to: