reklama

Staňte se programátorem: Napište si vlastní GOM Player III.

V předchozích dílech jste si s námi mohli napsat jednoduchý přehrávač s podporou playlistu a streamovaného videa a zvuku, dnes přidáme podporu přehrávání filmů s titulky.

V minulých dílech jsme si ukázali, jak pomocí komponenty AxWindowsMediaPlayer zpřístupnit v aplikaci přehrávací jádro Windows Media Player. Ukázali jsme si jak přehrát film, hudbu nebo stream z webu, jak vytvořit historii přehrávaných nahrávek a jak udělat vlastní seznam nahrávek. V dnešním díle se podíváme na přehrávání s titulky ve formátu SUB.

 

Práce s titulky SUB

Nejjednodušším formátem titulků je formát SUB. Ukázka toho, jak by titulky mohlo vypadat, uvádím níže:

{596}{931}Kde to jsme?
{1184}{1413}Vypadá to jako nějaký sklep
{1728}{2018}Asi ano a je tu docela zima

Klepněte pro větší obrázek  Klepněte pro větší obrázek
Nastavení titulků

První číslo ohraničené závorkami představuje číslo snímku, na kterém bude titulek zobrazen s aktuálním textem. Druhé číslo pak představuje číslo snímku, kdy titulek zmizí. Pro práci s titulky nám poslouží třída Titles. Metoda SetStartEnd nastaví počáteční a konečný snímek aktuálního titulku. Pro získání aktuálního titulku slouží vlastnost Text. Pro získání těchto údajů je nutné použití regulárních výrazů. K tomu nám poslouží třída System.Text.RegexExpressions.Regex, která představuje regulární výraz, který je zadán do konstruktoru. Pro získání řetězce, jež se shoduje s regulárním výrazem, nám poslouží metoda Match, která vrací instanci třídy Match ze stejného jmenného prostoru. Vlastnost Value této třídy představuje nalezený řetězec.

Regex r = new Regex(@“\d*\w{1,}\n.....“);
Match m= r.Match(text);
MessageBox.Show(“Nalezený text je:“ + m.Value);

Naše třída Titles, která se postará o práci s titulky:

public class Titles
{
  string[] titulky;
  int akt = 0;
  double end;
  double start;

  public Titles( string cesta)
  {
    akt = 1;
   
titulky = File.ReadAllLines(cesta);
    this.SetStartEnd();
  }

  void SetStartEnd()
  {
    // Vyhledá číslo snímku na kterém titulek začíná
    Regex regee = new Regex(@"\{\d*");
    Match mee = regee.Match(titulky[akt]); 
    //Vyhledá číslo snímku, na kterém titulek končí
    Regex rege = new Regex(@"}{\d*");
    Match me = rege.Match(titulky[akt]);
    // Převede počáteční a koncové snímky titulku na sekundy 
    start = ((double)int.Parse(mee.Value.Replace("}", "").Replace("{", "")) / 24);
    end = ((double)int.Parse(me.Value.Replace("}", "").Replace("{", "")) / 24);
  }

  public string Text
  {
     get
    {
      Regex reg = new Regex(@"\d}[^{].*");
      Match m = reg.Match(titulky[akt]);
      akt++;
      this.SetStartEnd();
      return m.Value.Replace("{", "").Replace("}", "").Remove(0, 1);
    }
  }

  public double EndAt
  {
    get { return end; }
  }

  public double StartAt
  {
    get{return start; }
  }
}

Dialogy

Implicitní dialog systému Windows určený pro výběr souborů je typu System.Windows.Firms.OpenFileDialog. Pro nastavení filtrování souborů dle jejich přípon slouží vlastnost Filter. Té je nutné řetězec obsahující název typu souborů a jejich příponu, například:

Klepněte pro větší obrázek  Klepněte pro větší obrázek
Přehrávání videa a hudby, komponenta si zachová kontextovou nabídku z Windows Media Playeru

“Textové soubory|*.txt“

Dialog následně zobrazíme metodou ShowDialog:

// Vytvoří dialog pro výběr souborů
OpenFileDialog opf = new OpenFileDialog();
// Nastaví filtr pro výběr sub titulků
opf.Filter = "Titulky SUB|*.sub";
if (opf.ShowDialog() == DialogResult.OK)
{
  titulky = new Titles(opf.FileName);
  Form1_SizeChanged(this, null);
}

A to je všechno. Dnes jsme rozšířili přehrávač o podporu SUB titulků. Náš malý GOM Player tpsotavený na jádře Windows Media Player tak už zvládá přehrávání všechn běžných formátů, které vládne i Windows Media Player včetně internetových streamů (ČT24 aj.). Pamatuje si naposledy přehrávané skladb ya umožňuje tvorbu jednoduchých playlistů.

Nakonec jako vždy nesmí chybět spustitelný přeložený program a zdrojový kód. K tomu prvému budete potřebovat Microsoft .NET Framework, k tomu druhému pak bezplatné vývojové prostředí Visual C# 2008 Express Edirion.


Mareš, Amadeo: 1001 tipů a triků pro C#

Klepněte pro větší obrázekNestačí vám náš seriál? Pořiďte si knihu jeho autora, ve které vás seznámí s tisícovkou programovacích tipů a technik. Díky velkému počtu tipů, návodů, triků a rad kniha poslouží při každé příležitosti. Kdykoli si nevíte rady, stačí nalistovat příslušnou stranu a problém okamžitě vyřešit. Tipy a triky míří především na začínající programátory; užitečné rady tu ovšem najdou i pokročilejší vývojáři a ostřílení znalci. SOučástí publikace je i přiložené DVD, na kterém najdete bezplatné vývojové prostředí Visual C#, databázový server a především všechny zdrojové kódy z knihy, takže je budete moci okamžitě použít. Webové stránky knihy.

Témata článku: Software, Programování, Download, Match, Double, Windows Media Player, Public, Dialog, 1001, Remove

3 komentáře

Nejnovější komentáře

  • svick 7. 5. 2009 23:50:28
    Docela mi v textu článku chybí, jak vlastně titulky zobrazit, bez toho to...
  • kozec 27. 4. 2009 18:58:54
    Ty si to este neskusal, vsak nie? :-P
  • Tehomas 27. 4. 2009 10:26:04
    Tak nejak jsem zavzpominal na komentare pod prvnim dilem, kde se rozhorela...
reklama
Určitě si přečtěte

Pojďme programovat elektroniku: Sestavíme si mobil a pošleme SMS

Pojďme programovat elektroniku: Sestavíme si mobil a pošleme SMS

** Kolik stál váš mobilní telefon? ** Základní GSM modem koupíte za stovku ** Umí telefonovat, posílat SMS a zvládne i GPRS

13.  1.  2017 | Jakub Čížek | 27

Do nitra zákeřného ransomwaru. Takto vypadá útok na počítače personalistek

Do nitra zákeřného ransomwaru. Takto vypadá útok na počítače personalistek

** Jmenuje se Rolf a chce práci ** Jeho životopis je ale trošku jiný ** Rolf je totiž ransomware

11.  1.  2017 | Jakub Čížek | 44

Auta budoucnosti: V tomto se budete za pár let vozit

Auta budoucnosti: V tomto se budete za pár let vozit

** Velký prostor patřil na letošním veletrhu CES automobilům ** Automobilová budoucnost je elektrická a inteligentní ** Podívejte se, jak je vývoj futuristických autonomních aut daleko

12.  1.  2017 | David Polesný | 34

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

** Dva týdny po Novém roce zajím zeje prázdnotou ** Ministerstvo vydalo metodický pokyn ** Takhle to bude fungovat v praxi

Včera | Jakub Čížek | 42


Aktuální číslo časopisu Computer

99 nejlepších programů pro váš počítač

Zvykejte si na umělou inteligenci

Velké testy PC zdrojů a gamepadů

Alternativní zdroje energie

reklama
reklama