Stöd för flera språk
[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Du kan ha stöd för flera språk både i strömmar och i metadata. Kärnan i stöd för flera språk i Windows Media Format SDK är gränssnittet IWMLanguageList, som upprätthåller en lista över de språk som stöds. Språklistan ger varje språk som stöds ett index, som används i olika objekt i SDK vid hantering av flera språk.
Metoden IWMLanguageList::AddLanguageByRFC1766String lägger till ett språk i listan. Du kan identifiera de språk som redan finns i listan genom att hämta det totala antalet språk med IWMLanguageList::GetLanguageCount och sedan loopa igenom språken som anropar IWMLanguageList::GetLanguageDetails för var och en. Språkindexet är nollbaserat.
Så här konfigurerar du ömsesidigt undantag efter språk
Det är mycket enkelt att konfigurera ett enkelt objekt för ömsesidig uteslutning efter språk. Varje ström är nu associerad med ett språk. Språket som är associerat med en ström kan anges med hjälp av IWMStreamConfig3::SetLanguage. När alla ömsesidigt uteslutande strömmar har konfigurerats skapar du helt enkelt ett objekt för ömsesidig uteslutning som du skulle göra för alla andra typer. Ring sedan upp IWMMutualExclusion::SetType genom att skicka CLSID_WMMUTEX_Language för typen.
Strömmar som är språkligt ömsesidigt uteslutande blir mer komplicerade när strömmarna också är ömsesidigt uteslutande genom bithastighet. I det här fallet måste du använda ömsesidigt uteslutande poster genom att utföra följande steg:
- Skapa ett objekt för ömsesidig uteslutning för strömmar med olika bithastigheter på varje språk. Mer information om hur du skapar ett objekt för ömsesidig uteslutning efter bithastighet finns i Using Multiple Bit Rate Mutual Exclusion.
- Skapa ett objekt för ömsesidig uteslutning. Anropa IWMMutualExclusion::SetType och skicka CLSID_WMMUTEX_Language för att ange exklusivitet efter språk.
- Hämta en pekare till IWMMutualExclusion2-gränssnittet för det ömsesidiga exkluderingsobjektet som skapades i steg 2 genom att anropa metoden QueryInterfaceIWMMutualExclusion.
- Anropa metoden IWMMutualExclusion2::AddRecord en gång för varje språk för att skapa dataströmposter som är ömsesidigt uteslutande.
- För varje post som skapas i steg 4 lägger du till strömmarna för lämpligt språk med anrop till IWMMutualExclusion2::AddStreamForRecord.
Läsa filer med flera språk
Läsarobjektet innehåller metoder för att identifiera tillgängliga språk för strömmar i en fil. Du kan hämta antalet språk som stöds för utdata genom att anropa IWMReaderAdvanced4::GetLanguageCount. Du kan sedan hämta information om varje språk med anrop till IWMReaderAdvanced4::GetLanguage.
Du kan ange vilket språk som ska spelas upp genom att skicka indexet för det språket till läsaren med ett anrop till IWMReaderAdvanced2::SetOutputSetting. Detta väljer det angivna språket samtidigt som automatiskt strömval för andra objekt för ömsesidig uteslutning i filen bibehålls.
Relaterade ämnen