ActionScript 3: TimeCode Klasse für Video-Zeitanzeige

Beispiel der Time Code Klasse

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]

3 Gedanken zu „ActionScript 3: TimeCode Klasse für Video-Zeitanzeige“

  1. Guten Tag,

    bin an der Verbindung des Timecode mit dem Video in abgewandelter Form intessiert. Können Sie mich zurückrufen?

    Danke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert