Korzystanie z pliku SMIL

Aby obsłużyć strumienie dla wielu przepustowości, w klasie VideoPlayer używana jest klasa pomocnicza (NCManager), w której obsługiwany jest podzbiór SMIL. SMIL używany jest w celu identyfikacji położenia strumienia wideo, układu (szerokości i wysokości) pliku FLV oraz źródłowych plików FLV, które odpowiadają różnym przepustowościom. Może być on także używany do określania szybkości transmisji oraz czasu trwania pliku FLV.

Do określania położenia pliku SMIL służy parametr source lub właściwość FLVPlayback.source (ActionScript). Więcej informacji zawiera sekcja Źródło oraz opis właściwości FLVPlayback.source w Skorowidzu języka ActionScript 3.0 dla programu Flash Professional .

W poniższym przykładzie przedstawiony został plik SMIL, który strumieniuje z serwera FMS pliki FLV o różnej przepustowości za pomocą protokołu RTMP:

<smil> 
<head> 
<meta base="rtmp://myserver/myapp/" /> 
<layout> 
<root-layout width="240" height="180" /> 
</layout> 
</head> 
<body> 
            <switch> 
                    <ref src="myvideo_cable.flv" dur="3:00.1"/> 
                    <video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/> 
                    <video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/> 
            </switch> 
</body> 
</smil>

Znacznik <head> może zawierać znaczniki <meta> oraz <layout> . W znaczniku <meta> obsługiwany jest tylko atrybut base , który używany jest do określania adresu URL strumienia wideo (protokół RTMP z serwera FMS).

W znaczniku <layout> obsługiwany jest tylko element root-layout , który używany jest do ustawiania atrybutów height oraz width , dlatego też określany jest w nim rozmiar okna, w którym renderowany jest plik FLV. W atrybutach tych akceptowane są tylko wartości pikseli, nie zaś procenty.

Do ciała pliku SMIL można dołączyć pojedyncze łącze do źródłowego pliku FLV lub, jeśli z serwera FMS strumieniowanych jest wiele plików o różnych przepustowościach (tak, jak w poprzednim przykładzie), można użyć znacznika <switch> w celu wyświetlenia plików źródłowych.

Znaczniki video i ref w tagu <switch> są synonimami — oba znaczniki mogą używać atrybutu src do określania plików FLV. Każdego z atrybutów region , system-bitrate i dur można użyć do określenia obszaru, minimalnej wymaganej przepustowości oraz czasu trwania pliku FLV.

W znaczniku <body> dozwolone jest tylko jedno wystąpienie znacznika <video> , <src> lub <switch> .

W poniższym przykładzie przedstawione zostało pobieranie progresywne dla pojedynczego pliku FLV, w którym nie jest używane wykrywanie przepustowości:

<smil> 
        <head> 
            <layout> 
                <root-layout width="240" height="180" /> 
            </layout> 
        </head> 
        <body> 
            <video src=""myvideo.flv" /> 
        </body> 
</smil>

<smil>

Dostępność

Flash Professional 8.

Zastosowanie

<smil> 
... 
child tags 
... 
</smil>

Atrybuty

Brak.

Znaczniki podrzędne

<head>, <body>

Znacznik nadrzędny

Brak.

Opis

Znacznik najwyższego poziomu, który identyfikuje plik SMIL.

Przykład

W poniższym przykładzie przedstawiono plik SMIL, w który określa trzy pliki FLV:

<smil> 
<head> 
<meta base="rtmp://myserver/myapp/" /> 
<layout> 
<root-layout width="240" height="180" /> 
</layout> 
</head> 
<body> 
<switch> 
                <ref src="myvideo_cable.flv" dur="3:00.1"/> 
                <video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/> 
                <video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/> 
            </switch> 
</body> 
</smil>

<head>

Dostępność

Flash Professional 8.

Zastosowanie

<head> 
... 
child tags 
... 
</head>

Atrybuty

Brak.

Znaczniki podrzędne

<meta>, <layout>

Znacznik nadrzędny

<smil>

Opis

Obsługuje znaczniki <meta> i <layout> i określa położenie i domyślny układ (wysokość i szerokość) źródłowych plików FLV.

Przykład

Poniższy przykład ustawia układ podstawowy na 240 x 180 pikseli:

<head> 
    <meta base="rtmp://myserver/myapp/" /> 
    <layout> 
        <root-layout width="240" height="180" /> 
    </layout> 
</head>

<meta>

Dostępność

Flash Professional 8.

Zastosowanie

<meta/>

Atrybuty

base

Znaczniki podrzędne

<layout>

Znacznik nadrzędny

Brak.

Opis

Zawiera atrybut base , który określa położenie (adres URL dla protokołu RTMP) źródłowych plików FLV.

Przykład

W poniższym przykładzie przedstawiony został znacznik meta dla podstawowego położenia na serwerze myserver :

<meta base="rtmp://myserver/myapp/" />

<layout>

Dostępność

Flash Professional 8.

Zastosowanie

<layout> 
... 
child tags 
... 
</layout>

Atrybuty

Brak.

Znaczniki podrzędne

<root-layout>

Znacznik nadrzędny

<meta>

Opis

Określa szerokości i wysokość pliku FLV.

Przykład

W poniższym przykładzie układ określony został na 240 na 180 pikseli:

<layout> 
    <root-layout width="240" height="180" /> 
</layout>

<root-layout>

Dostępność

Flash Professional 8.

Zastosowanie

<root-layout...attributes.../>

Atrybuty

Width, height

Znaczniki podrzędne

Brak.

Znacznik nadrzędny

<layout>

Opis

Określa szerokości i wysokość pliku FLV.

Przykład

W poniższym przykładzie układ określony został na 240 na 180 pikseli:

<root-layout width="240" height="180" />

<body>

Dostępność

Flash Professional 8.

Zastosowanie

<body> 
... 
child tags 
... 
</body>

Atrybuty

Brak.

Znaczniki podrzędne

<video>, <ref>, <switch>

Znacznik nadrzędny

<smil>

Opis

Zawiera znaczniki <video> , <ref> i <switch> , które określają nazwę źródłowego pliku FLV, minimalną przepustowość oraz czas trwania pliku FLV. Atrybut system-bitrate obsługiwany jest tylko, gdy używany jest znacznik <switch> . W znaczniku <body> dozwolona jest tylko jedna instancja znacznika <switch> , <video> lub <ref> .

Przykład

W poniższym przykładzie określone zostały trzy pliki FLV, dwa za pomocą znacznika video i jeden za pomocą znacznika ref :

<body> 
    <switch> 
        <ref src="myvideo_cable.flv" dur="3:00.1"/> 
        <video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/> 
        <video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1"/> 
    </switch> 
</body>

<video>

Dostępność

Flash Professional 8.

Zastosowanie

<video...attributes.../>

Atrybuty

src, system-bitrate, dur

Znaczniki podrzędne

Brak.

Znacznik nadrzędny

<body>

Opis

Synonim ze znacznikiem <ref> . Obsługuje atrybuty src i dur , które określają nazwę źródłowego pliku FLV oraz czas jego trwania. Atrybut dur obsługuje pełny (00:03:00:01) i częściowy format czasu (03:00:01).

Przykład

W poniższym przykładzie dla wideo ustawiane jest źródło i czas trwania:

<video src="myvideo_mdm.flv" dur="3:00.1"/>

<ref>

Dostępność

Flash Professional 8.

Zastosowanie

<ref...attributes.../>

Atrybuty

src, system-bitrate, dur

Znaczniki podrzędne

Brak.

Znacznik nadrzędny

<body>

Opis

Synonim ze znacznikiem <video> . Obsługuje atrybuty src i dur , które określają nazwę źródłowego pliku FLV oraz czas jego trwania. Atrybut dur obsługuje pełny (00:03:00:01) i częściowy format czasu (03:00:01).

Przykład

W poniższym przykładzie dla wideo ustawiane jest źródło i czas trwania:

<ref src="myvideo_cable.flv" dur="3:00.1"/>

<switch>

Dostępność

Flash Professional 8.

Zastosowanie

<switch> 
... 
child tags 
... 
<switch/>

Atrybuty

Brak.

Znaczniki podrzędne

<video>, <ref>

Znacznik nadrzędny

<body>

Opis

Używany z podrzędnymi znacznikami <video> lub <ref> do wyświetlania plików FLV dla strumieniowania wideo o różnych przepustowościach. Znacznik <switch> obsługuje atrybut system-bitrate , który określa minimalną przepustowość, a także atrybuty src oraz dur .

Przykład

W poniższym przykładzie określone zostały trzy pliki FLV, dwa za pomocą znacznika video i jeden za pomocą znacznika ref :

<switch> 
    <ref src="myvideo_cable.flv" dur="3:00.1"/> 
    <video src="myvideo_isdn.flv" system-bitrate="128000" dur="3:00.1"/> 
    <video src="myvideo_mdm.flv" system-bitrate="56000"dur="3:00.1" /> 
</switch>