Ein vielgewünschtes Feature bei der Integration von Videos ist die Anzeige der Zeit. Leider liefert die NetStream-Klasse die aktuelle Position des Videos nur in vollen Sekunden (z.B. 80 Sekunden statt 1 Minute 20 Sekunden). Somit muss man für eine sinnvolle Zeitanzeige die Werte erst umrechnen.
Die TimeCode-Klasse übernimmt diese Aufgabe. Als Input erwartet sie nur die Anzahl der Sekunden. Als Ausgabe liefert sie einen String in der Form „Minuten:Sekunden“ („MM:SS“, z.B. 02:10) oder „Stunden:Minuten:Sekunden“ („HH:MM:SS“, z.B. 10:00:00). Da die Stundenangabe normalerweise im Internet nicht benötigt wird, ist die erste Variante standardmäßig aktiviert.
Um die Funktionsweise der TimeCode-Klasse zu verdeutlichen, habe hier den kurzen Beispielcode aus der .fla-Datei. Die Funktion getTC(Sekunden) liefert als Rückgabewert den Timecode. Die Funktion showHours(true) aktiviert das Stundenformat.
Für die (Video-)Praxis bedeutet dies: Einfach ein neues TimeCode-Objekt anlegen. Dann z.B. sinngemäß mit myTextField.text = myTimeCode.getTC (myNetStream.time) in einem Textfeld die Zeit anzeigen lasssen. Damit die Zeit ständig aktualisiert wird, einfach einen Timer setzen (siehe hier im Archiv).
Der Download-Link befindet sich im unteren Ende des Artikels.
[as]
// import TimeCode class
import com.florianplag.TimeCode;
// new TimeCode
var t:TimeCode = new TimeCode;
// example 1: 121 seconds
var sec:Number = 121;
// trace
trace (sec + “ seconds = “ + t.getTC(sec) + “ (MM:SS)“);
// example 2: showHours, 3601 seconds
t.showHours (true);
sec = 3601;
// trace
trace (sec + “ seconds = “ + t.getTC(sec) + “ (HH:MM:SS)“);
[/as]
Der Quellcode der Klasse lautet:
[as]
// TimeCode class by Florian Plag (www.video-flash.de)
//
// converts seconds into TimeCode (MM:SS or HH:MM:SS)
// @author Florian Plag
// @version 0.2 (Update for Flash CS3)
package com.florianplag {
public class TimeCode {
private var _showHours:Boolean;
// :::: constructor ::::
public function TimeCode() {
_showHours = false;
}
// :::: showHours ::::
public function showHours(show:Boolean) {
_showHours = show;
}
// :::: getTC ::::
public function getTC(seconds:Number):String {
var result:String = „“;
var myTime = new Date(2007, 0, 1 , 0, 0, seconds);
// hours
if (_showHours == true) {
if (myTime.getHours() <10) {
result = "0" + myTime.getHours() + ":";
}
else {
result = myTime.getHours() + ":";
};
};
// minutes
if (myTime.getMinutes() <10) {
result += "0" + myTime.getMinutes() + ":";
}
else {
result += myTime.getMinutes() + ":";
};
// seconds
if (myTime.getSeconds() <10) {
result += "0" + myTime.getSeconds();
}
else {
result += myTime.getSeconds();
};
return result;
}
}
}
[/as]
Link: TimeCode Klasse (ZIP) (Klasse und Beispiel)
[ad]
Guten Tag,
bin an der Verbindung des Timecode mit dem Video in abgewandelter Form intessiert. Können Sie mich zurückrufen?
Danke
Um was geht es denn genau?
hey florian,
hab gerade deine timecode klasse benutzt. vielen dank :)