Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: zwischenstand

...

Code Block
borderColorgrey
bgColor#eeeeee
langjavascript
borderStylesolid
// 1. Instantiere das API-Objekt
var sensors:SpringStreams = new SpringStreams("angebotsname");

// 2. Ein Description-Objekt für den Streaming-Content anlegen.
var desc:Object = {
   "stream":"videos/mystream",
   "duration":600 // in Sekunden
};

// 3. Das Content-Objekt zur Verfügung stellen
var content:Object = ...; // Irgendein Objekt, dass in der Lage ist die aktuelle Position in Sekunden zu liefern

// 4. Den Content mit dem Description-Objekt auf dem Sensor registieren.
var stream:Stream = sensors.track(content, desc);

// 5. Optional: Weitere Streams messen - auch parallel
var stream2:Stream = sensors.track(content2, desc2);
// etc.

// 6. Optional: Stoppen einer Messung
stream.stop();

// 7. Optional: Stoppen aller Messungen
sensors.unload();

Erläuterungen:

zu 1: Instantiiere das API-Objekt

...

Erläuterungen:

zu 1: Instantiiere das API-Objekt

  • Wichtig ist, dass der korrekte Angebotesname angegeben wird. Dieser Angebotsname wird vom Betreiber der Streaming-Lösung vergeben.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    
    var sensors:SpringStreams = new SpringStreams("angebotsname");
    
  • Eine Instanz des Objektes SpringStreams ist im Framework nur einmalig anzulegen. Ab da können ein oder mehrere Streams der track-Methode zur Messung übergeben werden.

zu 2: Ein Description-Objekt für den Streaming-Content anlegen

  • Im Description-Objekt muss mindestens der Name des Streams angegeben werden.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    	
    var sensorsdesc:SpringStreamsObject = new SpringStreams("angebotsname");
    
  • Eine Instanz des Objektes SpringStreams ist im Framework nur einmalig anzulegen. Ab da können ein oder mehrere Streams der track-Methode zur Messung übergeben werden.

zu 2: Ein Description-Objekt für den Streaming-Content anlegen

  • Im Description-Objekt muss mindestens der Name des Streams angegeben werden.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    	
    var desc:Object = {
       "stream":"videos/mystream",
       "duration":600 // in Sekunden
    };
    
  • Mit dem Description-Objekt übergibt man der API nähere Informationen zum Streaming-Content. Hierbei sind folgende Variablen erlaubt bzw. werden vom Messsystem verstanden.

    Variable

    Optional

    Beschreibung

    stream

    Nein

    Der Names des Streams, der optimalerweise als Hierarchie übergeben wird. z.B. path/to/stream/name

    duration

    Nein

    Die Duration muss angegeben werden. Im Falle von Livestreams kann sie weggelassen werden oder wird mit dem Wert 0 geliefert

    ct

    Ja

    Hier kann ein beliebiger Wert verwendet werden, der ein Aussage über den ContentType macht. Beispielweise könnte der Wert ad angegeben werden, um den Stream als Werbung zu markieren.

    sx

    Ja

    Die Breite (width) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    sy

    Ja

    Die Höhe (height) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    desc

    Ja

    Hier kann eine Beschreibung des Streams hinterlegt werden.

zu 3: var content:Object = ...;

Einbau über Javascript für beliebige Player (auch proprietäre)

Vor Benutzung der springStreams-Funktionen muss die Javascript-Bibiliothek geladen werden. Dies geschieht über den folgenden Script-Tag:

...

borderColorgrey
bgColor#eeeeee
langhtml
borderStylesolid
  • {
       "stream":"videos/mystream",
       "duration":600 // in Sekunden
    };
    
  • Mit dem Description-Objekt übergibt man der API nähere Informationen zum Streaming-Content. Hierbei sind folgende Variablen erlaubt bzw. werden vom Messsystem verstanden.

    Variable

    Optional

    Beschreibung

    stream

    Nein

    Der Names des Streams, der optimalerweise als Hierarchie übergeben wird. z.B. path/to/stream/name

    duration

    Nein

    Die Duration muss angegeben werden. Im Falle von Livestreams kann sie weggelassen werden oder wird mit dem Wert 0 geliefert

    ct

    Ja

    Hier kann ein beliebiger Wert verwendet werden, der ein Aussage über den ContentType macht. Beispielweise könnte der Wert ad angegeben werden, um den Stream als Werbung zu markieren.

    sx

    Ja

    Die Breite (width) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    sy

    Ja

    Die Höhe (height) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    desc

    Ja

    Hier kann eine Beschreibung des Streams hinterlegt werden.

zu 3: as Content-Objekt zur Verfügung stellen

  • Die einzige Anforderung an dieses Objekt seitens der Streaming-API ist, dass es die Möglichkeit bietet die aktuelle Position auf einem Stream in Sekunden auslesen zu können. Je nach Programmiersprache sind hier ebenfalls softwaretechnische Lösungen denkbar, wie die Implementierung von Interfaces oder die Implementierung von Adapterklassen.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    
    var content:Object = ...; 
    

zu 4: Den Content mit dem Description-Objekt auf dem Sensor registieren.

  • Im nächsten Schritt der Streaming-Content und das Description-Objekt der API-Methode track übergeben werden. Ab diesem Zeitpunkt wird die aktuelle Position auf dem Stream getracked. An dieser Stelle ist es möglich mehrere Streams parallel zu messen, in dem jeder zusätzlich Streaming-Content mit dem zugehörigen Description-Objekt ebenfalls der track-Methode übergeben wird.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    
    var stream:Stream = sensors.track(content, desc);
    
  • Die Messung einzelner Streams kann jederzeit durch den Aufruf der Methode Stream.stop() abgebrochen werden.

Interne Funktionsbeschreibung der API

Nachdem der Streaming-Content der track-Methode mit dem zugehörigen Description-Objekt übergeben worden ist, wird intern mehrfach pro Sekunde die aktuelle Position auf dem Streaming-Content abgefragt. Die Abfrage erfolgt per default alle 200 ms wodurch es keinen Einfluss auf die Gesamtperformance des Systems geben wird.

Im Normalfall wird ein Stream gestartet und es findet eine konstante Sichtung statt. In diesem Fall wird intern ein Intervall angelegt dessen Endzeit zyklisch angepasst wird. Wenn irgendwelche Veränderungen der konstanten Sichtung festgestellt werden, die z.B. durch Start- oder Stop-Ereignisse oder durch Spulvorgänge verursacht sein können, wird intern ein neues Intervall angelegt.

Code Block



h2. Einbau über Javascript für beliebige Player (auch proprietäre)

Vor Benutzung der springStreams-Funktionen muss die Javascript-Bibiliothek geladen werden. Dies geschieht über den folgenden Script-Tag:

{code:lang=html|borderStyle=solid|borderColor=grey|bgColor=#eeeeee}
<script src=".../springstreams.js"></script>

...