Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Streamování videa v Android aplikacích

by
Difficulty:IntermediateLength:LongLanguages:

Czech (Čeština) translation by Karel Krkoska (you can also view the original English article)

Streamování videa v Android aplikacích

Platforma Android poskytuje knihovny, které můžete použít k streamování multimediálních souborů, například ke vzdáleným videím, které jsou prezentovány pro přehrávání v aplikacích. V tomto tutoriálu, budeme streamovat video soubor, zobrazovat ho pomocí VideoView komponentu, spolu s MediaController objektu a necháme uživatele ovládat přehrávání.

Také rychle projdeme proces prezentování videa pomocí třídy MediaPlayer. Pokud jste prošli sérii o vytváření hudebního přehrávače pro Android, budete moci použít, co jste se naučili v tomto tutoriálu a více prohloubit. Měli byste být schopni projít tento tutoriál pokud jste již vyvinuli alespoň pár Anroid aplikací.

1. Vytvořte novou aplikaci

Krok 1

Můžete použít kód v tomto tutoriálu pro vylepšení existující aplikace na které pracujete nebo můžete vytvořit aplikaci novou v Eclipse nebo Android Studiu. Vytvořte nový Android projekt a dejte mu název podle vašeho výběru, nastavte detaily a přidejte základní hlavní třídu Activity a rozvržení.

Krok 2

Nejdříve nakonfigurujeme manifest projektu, pro streamování médií. Otevřete soubor manifestu vašeho projektu a přehoďte na XML editování ve vašem IDE. Pro streamování medíí, potřebujete přístup k internetu, takže přidejte následující povolení do manifest elementu:

2. Add VideoView

Krok 1

Android platforma nabízí VideView třídu ve které můžete přehrávat video soubory. Přidáme jednu do hlavního souboru rozvržení:

Upravte parent rozvržení, aby se to hodilo do vaší aplikace, pokud je potřeba. Dame VideoView instanci id atribut, abychom se na něj mohli později odvolat. Možná budete muset upravit jiné nastavení rozvržení, pro váš design.

Krok 2

Nyní získáme referenci na VideoView instanci v kódu. Otevřete hlavní Activity třídu vaší aplikace a přidejte následující importy:

Vaše Activity třída by měla již obsahovat onCreate metodu, ve které je nastaven content view:

Po setContentView řádku, získejme referenci na VideoView instanci, použitím id, které jsem nastavili v XML rozvržení:

3. Stream video souboru

Krok 1

Nyní můžeme streamovat video soubor do aplikace. Připravte URI pro endpoint takto:

Samozřejmě budete muset použít vzdálenou adresu pro video soubor, který chcete streamovat. Příklad zde, je video z veřejné domény, hostované na Internet Archívu. Parsujeme string adresy jako URI, takže ji můžeme předat objektu VideoView:

Nyní jednoduše spusťte přehrání:

Operační systém android podporuje různé formáty videa a médií, každé zařízení často podporuje další formáty navíc.

Jak můžete vidět v Developer Guide, video soubory podporuji 3GP, MP4, WEBM a MKV v závislosti na formátech použitých a platformě, kterou uživatel nainstaloval.

Podporované formáty audio souborů, obsahují MP3, MID, OGG a WAV. Můžete streamovat media na android přes RTSP, HTTP a HTTPS (od androidu 3.1).

4. Přidat ovládání přehrávání

Krok 1

Implementovali jsme video přehrávání, ale uživatel bude očekávat a je zvyklý mít vše pod kontrolou. Znovu, platforma Android nabízí zdroj pro ovládání pomocí známe interakce přes třídu MediaController.

Ve vaší tříde Activity onCreate metodě, před řádkem ve kterém voláte start na VideoView, vytvořte instanci třídy:

Další, nastavte použití ViewView instance jako kotvu:

A konečně, nastavte ji jako media controller pro VideoView objekt:

Když spustíte aplikaci nyní, uživatel by měl mít možnost ovládat přehrávání streamovaného videa, včetně rychlého přetáčení vpřed a vzad, tlačítka pro přehrávání / pozastavení a ovládacího prvku vyhledávání.

Ovládací prvek hledání je doprovázen délkou mediálního souboru vpravo a aktuální pozicí přehrávání vlevo. Vedle toho, že budete moci klepnout po vyhledávací liště a přeskočit na místo v souboru, bude stav streamování zobrazen pomocí stejného typu zobrazení, na který bude uživatel zvykat z webů a aplikací, jako je YouTube.

Jak uvidíte při spuštění aplikace, výchozí chování je, aby ovládací prvky zmizely po několika okamžicích a znovu se objevily, když se uživatel dotýká obrazovky. Chování můžete nastavit v MediaController objektu různými způsoby. Podívejte se na sérii jak vytvořit aplikaci hudebního přehrávače pro Android pro příklad jak to udělat. Můžete také vylepšit přehrávání medii, implementování různých posluchačů pro pro konfigurování chování vaší aplikace.

5. Použití MediaPlayer

Krok 1

Než skončíme, projděme si alternativní přístup, pro streamování videa pomocí třídy MediaPlayer, protože jsme ji použili v sérii o tvorbě hudeního přehrávače. Můžete streamovat média, včetně videa do objektu MediaPlayer pomocí surface view. Například, můžete použít následující rozvržení:

Odvoláme se na SurfaceView v implementaci třídy Activity.

Krok 2

Ve vaší tříde Activity, přidejte následující interface:

Vaše IDE by vás mělo vyzvat k přidání neimplementovaných metod:

Přidáme k surfaceCreated a onPrepared metodám.

Krok 3

Pro implementování playbacku, přidejte následující instance proměnných do třídy:

V Activity metodě onCreate, můžete potom začít instancovat tyto proměnný pomocí SurfaceView objektu, který jste přidali do rozvržení:

Krok 4

V surfaceCreated metodě, nastavte váš zdroj přehrávání media:

Konečně, v onPrepared metodě, spusťte přehrávání:

Vaše video by nyní mělo hrát v instanci MediaPlayer, když spustíte aplikaci.

Shrnutí

V tomto tutoriálu, jsme načrtli základy streamování videa na Android pomocí VideoView a MediaPlayer tříd. Můžete přidat mnoho vylepšení do kódu, který jsme zde implementovali, například vytvořením podpory video nebo streamovacího media do hudebního přehrávače, který jsme vytvořili. Také byste se mohli podívat na zdroje pro Android jako třeba YouTube Android Player API.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.