Moonlight 1.0: od instalace k první aplikaci

Nedávno vyšla finální verze Moonlight 1.0. Provedeme vás její instalací včetně balíčku kodeků pro přehrávání videa a ukážeme vám, jak si můžete vytvořit jednoduchou aplikaci, která poběží v Moonlightu 1.0 i Silverlightu 1.0.

Moonlight 1.0 je implementace technologie Silverlight 1.0 uvolněná pod licencí LGPL. Jako volitelnou součást Moonlight 1.0 si můžete doinstalovat Microsoft Media Pack pro přehrávání multimédií, které využívají licencované kodeky, jako je například kodek VC-1.

Identické kodeky obsahuje i Silverlight 1.0, takže je zaručeno bezproblémové přehrávání multimédií na všech platformách, které Silverlight 1.0, resp. Moonlight 1.0 podporují.

Instalace Moonlightu

  1. Ověřte, zda je Moonlight podporován na vašem systému. Pokud není, můžete se zapojit do vývoje.
  2. Na www.go-mono.com/moon­light/ si vyberte architekturu vašeho systému, klikněte na ikonu pro stažení a povolte stažení rozšíření.
    Instalace Moonlight
  3. Až se rozšíření nainstaluje, restartujte Firefox. Na stránce Moonlight byste nyní měli vidět informaci, že máte nainstalovaný nejnovější Moonlight.
    Potvrzení instalace Moonlight
  4. Následně si můžete volitelně nainstalovat audio a video kodeky. Otevřete stránku tv.hokej.cz (použít můžete i jakoukoliv jinou stránku, která streamuje video).
  5. Klikněte na Spustit ukázku, otevře se dialog instalace kodeků, klikněte na Install Codecs.
    Instalace kodeků
  6. Potvrďte licenci a až se kodeky stáhnou, mělo by video po obnovení stránky začít fungovat.
    Video hokeje

Ukázka vytvoření aplikace pro Moonlight 1.0, resp. Silverlight 1.0

Vývoji aplikací pro technologii Silverlight 2.0 zde bylo věnováno již několik článků, avšak verze 1.0 je často opomíjena, i když ve své době přinesla dvě zajímavé vlastnosti: celoobrazovkový režim a přehrávání streamovaného videa ve Full HD (kodek VC-1) a s tím zdarma dostupnou službu Silverlight Streaming. V jednoduché ukázce si vytvoříme vlastní video archiv, který bude využívat právě službu Silverlight Streaming.

Služba Silverlight Streaming

Tuto službu najdete na adrese silverlight.li­ve.com, kde si můžete zdarma vytvořit účet. Budete mít k dispozici 10 GB místa pro vaše videa. Omezení základního účtu jsou následující:

  • Délka videa maximálně 10 minut
  • Velikost videa maximálně 105 MB
  • Maximální bit rate 1,4 Mbps
  • Maximální objem přenesených dat za měsíc 5 TB

Po přihlášení se na Silverlight Streaming můžete v sekci Manage Videos přidat video, které chcete streamovat. Pokud na server nahrajete video ve formátu, kterému Silverlight nerozumí, server video překóduje. Práci s aplikacemi na Silverlight Streaming se zde nebudeme věnovat.

Na stránce s detailní informací o videu najdete HTML kód pro vložení videa do stránky a URL video streamu.

HTML kód pro vložení videa

Zatím není možné k videu zřídit přístupová práva – všechna videa jsou veřejná. Kromě administrace videí pomocí webového administračního rozhraní můžete využít i Silverlight Streaming API, které je postaveno na protokolu WebDAV. K webovému rozhraní se budete přihlašovat pomocí Live ID, ale Silverlight Streaming API využívá k přihlašování Accout ID a Account Key, které najdete v sekci Manage Account.

Vytvoření klíče

Získání seznamu videí a jejich URL může v PHP vypadat následovně:

<?php
// zde vlozte vase AccountId a AccountKey z uctu na silverlight.live.com
$accountId = '';
$accountKey = '';
 
$baseUrl = "https://silverlight.services.live.com/$accountId/";
 
require_once "HTTP/Request.php";
$req = new HTTP_Request($baseUrl);
$req->setBasicAuth($accountId, $accountKey);
 
$req->sendRequest();
if($req->getResponseCode() == 200)
{
  $baseUrl = str_replace('https:', 'http:', $baseUrl);
  $fileSetXml = new SimpleXMLElement($req->getResponseBody());
 
  foreach ($fileSetXml->xpath('fileSet') as $fileSet)
  {
      // jmeno videa
      $fileSetName = $fileSet['name'];
  $videoUrl = $baseUrl . str_replace('+', '%20', urlencode($fileSetName)) . '/video.wmv';
echo "<a href='"$videoUrl"'>$fileSetName</a><br />";
  }
}
?> 

Videa jsou připravena na streamovacím serveru Silverlight Streaming a nyní se podívejme na základní principy aplikací pro Moonlight 1.0, resp. Silverlight 1.0. Hotovou aplikaci najdete ke stažení na konci článku.

Stručný úvod do vývoje aplikací pro Moonlight 1.0

Vývoj aplikací pro Moonlight 1.0 je v podstatě podobný s vývojem javascriptových aplikací, s tím rozdílem, že uživatelské rozhraní není popsáno pomocí HTML, ale pomocí jazyka XAML.

XAML je deklarativní jazyk založený na XML pro popis uživatelského rozhraní, který byl vytvořen pro potřeby Windows Presentation Foundation a byl uveden společně s .NET Frameworkem 3.0. Kromě popisu uživatelského rozhraní slouží i k popisu vektorové grafiky, animací, událostí a datových vazeb. Jako vývojový nástroj můžete tedy použít libovolný textový editor, který například používáte pro tvorbu webových stránek. Pro ladění aplikace pak můžete použít Firebug, neboť veškerá aplikační logika je vytvořena pomocí JavaScriptu.

Vazba XAML na JavaScript a zpět

Zeleně podtržený text je název javascriptové funkce, která se spustí při stisku levého tlačítka myši v ploše, kterou ohraničuje Canvas, a žlutý text je název objektu popsaného v XAML. Parametr sender je vaše aplikace, kde se k jednotlivým objektům dostanete pomocí metody findName. Objekty se pojmenovávají pomocí atributu  x:Name.

Ukázka kódu v XAML
Kód pro spuštení videa

Vložení aplikace do stránky

Aplikaci vložíte do stránky způsobem, který je popsán v článku Silverlight 2: vytváříme ukázkovou aplikaci. Jediný rozdíl je, že ve vlastnosti version uvedete 1.0 a parametr source se odkazuje přímo na výchozí XAML „stránku“. Vlastnosti width a height doporučuji nastavit na absolutní hodnotu, ne na procentuální, jinak bude mít Moonlight 1.0 problém aplikaci zobrazit.

Silverlight.createObjectEx({
  source: "Page.xaml",
  parentElement: document.getElementById("videoPlayer"),
  id: "SilverlightControl",
  properties: {
    width: "620",
    height: "550",
    version: "1.0"
}}); 

Kód ke stažení

Zdrojový kód celého příkladu si můžete stáhnout: Demo MoonlightVide­oServer (ZIP 5860 bytů)

Závěr

Jak vidíte, k vytvoření aplikace pro Moonlight 1.0, resp. Silverlight 1.0, vám stačí pouze textový editor a video si můžete nechat zdarma streamovat službou Silverlight Streaming. Finální verze Moonlightu 2.0 je plánována na září 2009.


Autorem článku je Štěpán Bechynský, specialista pro vývojové nástroje ve společnosti Microsoft v České republice. Informace pro vývojáře také najdete na blogu odborníků z českého Microsoftu.

Používáte Moonlight?

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 26

Přehled komentářů

pravdokop Pěkně děkuji...
mm Re: Pěkně děkuji...
mirozbiro Re: Pěkně děkuji...
Jiří Knesl Re: Pěkně děkuji...
Cartman Re: Pěkně děkuji...
Anonym Re: Pěkně děkuji...
Jiří Knesl Re: Pěkně děkuji...
mirozbiro Re: Pěkně děkuji...
Jiří Knesl Re: Pěkně děkuji...
Aleš Roubíček Re: Pěkně děkuji...
pravdokop Re: Pěkně děkuji...
Aleš Roubíček Re: Pěkně děkuji...
Standa Re: Pěkně děkuji...
lkopecky FF3 a Moonlight pada
Ilfirin Re: FF3 a Moonlight pada
lubos kopecky Re: FF3 a Moonlight pada
Dano Pekny clanok
VfB snad jsem to pochopil špatně?
Aleš Roubíček Re: snad jsem to pochopil špatně?
VfB Re: snad jsem to pochopil špatně?
petr.ocasek Re: snad jsem to pochopil špatně?
grunt WMV/WMA + MP3
Sten Re: WMV/WMA + MP3
Aleš Roubíček Re: WMV/WMA + MP3
harvie Proč zas*rat Linux? To půjde takhle do p*c* vsechno...
Jan Jelínek Re: Proč zas*rat Linux? To půjde takhle do p*c* vsechno...
Zdroj: https://www.zdrojak.cz/?p=2948