Podpora více jazyků
[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byla nahrazena zpracovníkem zdroje a přijímačem výstupu. a zapisovač jímky jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdrojů a Zapisovač datového toku místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
V datových proudech i v metadatech můžete podporovat více jazyků. Jádrem podpory více jazyků v sadě Windows Media Format SDK je rozhraní IWMLanguageList, které udržuje seznam podporovaných jazyků. Seznam jazyků poskytuje každému podporovanému jazyku index, který se používá v různých objektech v sadě SDK při práci s více jazyky.
IWMLanguageList::AddLanguageByRFC1766String metoda přidá jazyk do seznamu. Jazyky, které už jsou v seznamu, můžete identifikovat získáním celkového počtu jazyků s IWMLanguageList::GetLanguageCount a následným procházením jednotlivých jazyků a voláním IWMLanguageList::GetLanguageDetails pro každý. Index jazyka je založený na nule.
Konfigurace vzájemného vyloučení podle jazyka
Konfigurace jednoduchého objektu vzájemného vyloučení podle jazyka je velmi jednoduchá. Každý datový proud je teď přidružený k jazyku. Jazyk přidružený ke streamu lze nastavit pomocí IWMStreamConfig3::SetLanguage. Po nakonfigurování všech vzájemně se vylučujících datových proudů jednoduše vytvořte objekt vzájemného vyloučení stejně jako pro jakýkoli jiný typ. Potom zavolejte IWMMutualExclusion::SetType a předejte CLSID_WMMUTEX_Language jako typ.
Datové proudy, které se vzájemně vylučují podle jazyka, se zkomplikují, když se exkluzivní datové proudy vzájemně vylučují také přenosovou rychlostí. V takovém případě musíte použít vzájemně se vylučující záznamy provedením následujících kroků:
- Vytvořte objekt vzájemného vyloučení pro datové proudy různých bitových rychlostí v jednotlivých jazycích. Další informace o vytvoření objektu vzájemného vyloučení podle přenosové rychlosti naleznete v tématu Použití vícebitové vzájemné vyloučení.
- Vytvořte objekt vzájemného vyloučení. Voláním IWMMutualExclusion::SetType s parametrem CLSID_WMMUTEX_Language k určení exkluzivity podle jazyka.
- Získejte ukazatel na rozhraní IWMMutualExclusion2 objektu vzájemného vyloučení vytvořeného v kroku 2 voláním metody QueryInterfaceIWMMutualExclusion.
- Zavolejte metodu IWMMutualExclusion2::AddRecord jednou pro každý jazyk, abyste vytvořili streamové záznamy, které se vzájemně vylučují.
- Pro každý záznam vytvořený v kroku 4 přidejte streamy příslušného jazyka pomocí volání IWMMutualExclusion2::AddStreamForRecord.
Čtení souborů s více jazyky
Objekt čtenáře poskytuje metody pro identifikaci dostupných jazyků datových proudů v souboru. Počet podporovaných jazyků pro výstup můžete načíst voláním IWMReaderAdvanced4::GetLanguageCount. Pak můžete načíst podrobnosti o jednotlivých jazycích pomocí volání IWMReaderAdvanced4::GetLanguage.
Jazyk, který se má přehrát, můžete určit předáním indexu tohoto jazyka čtenáři voláním IWMReaderAdvanced2::SetOutputSetting. Tím se vybere zadaný jazyk při zachování automatického výběru datového proudu pro všechny ostatní objekty vzájemného vyloučení v souboru.
Související témata