Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i Sink Writer. Czytnik źródła i Zapis urządzenia końcowego zostały zoptymalizowane pod kątem Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał Source Reader i Sink Writer zamiast Windows Media Format 11 SDK, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Można obsługiwać wiele języków zarówno w strumieniach, jak i w metadanych. Podstawową obsługą wielu języków w zestawie SDK formatu Windows Media jest interfejs IWMLanguageList, który utrzymuje listę obsługiwanych języków. Lista języków zawiera każdy obsługiwany język z przypisanym indeksem, który jest używany w różnych obiektach w pakiecie SDK przy obsłudze wielu języków.
Metoda IWMLanguageList::AddLanguageByRFC1766String dodaje język do listy. Języki już na liście można zidentyfikować, uzyskując łączną liczbę języków za pomocą IWMLanguageList::GetLanguageCount, a następnie przechodząc przez języki, wywołując IWMLanguageList::GetLanguageDetails dla każdego z nich. Indeks języka ma wartość zero.
Aby skonfigurować wzajemne wykluczanie według języka
Konfigurowanie prostego obiektu wzajemnego wykluczania według języka jest bardzo proste. Każdy strumień jest teraz skojarzony z językiem. Język skojarzony ze strumieniem można ustawić przy użyciu IWMStreamConfig3::SetLanguage. Po skonfigurowaniu wszystkich wzajemnie wykluczających się strumieni wystarczy utworzyć obiekt wzajemnego wykluczania, tak jak w przypadku dowolnego innego typu. Następnie wywołaj IWMMutualExclusion::SetType, przekazując CLSID_WMMUTEX_Language jako parametr dla typu.
Strumienie, które wzajemnie wykluczają się według języka, stają się bardziej skomplikowane, gdy wyłączne strumienie również wzajemnie wykluczają się według szybkości transmisji bitów. W takim przypadku należy używać wzajemnie wykluczających się rekordów, wykonując następujące kroki:
- Utwórz obiekt wzajemnego wykluczenia dla strumieni różnych szybkości transmisji bitów w każdym języku. Aby uzyskać więcej informacji na temat tworzenia obiektu wzajemnego wykluczania według szybkości bitów, zobacz Using Multiple Bit Rate Mutual Exclusion.
- Utwórz obiekt wzajemnego wykluczenia. Wywołaj IWMMutualExclusion::SetType i przekaż CLSID_WMMUTEX_Language, aby określić wyłączność według języka.
- Uzyskaj wskaźnik do interfejsu IWMMutualExclusion2 obiektu wzajemnego wykluczania utworzonego w kroku 2, wywołując metodę QueryInterface interfejsu IWMMutualExclusion.
- Wywołaj metodę IWMMutualExclusion2::AddRecord raz dla każdego języka, aby utworzyć rekordy strumienia, które będą się wzajemnie wykluczać.
- Dla każdego rekordu utworzonego w kroku 4 dodaj strumienie odpowiedniego języka z wywołaniami do IWMMutualExclusion2::AddStreamForRecord.
Odczytywanie plików w wielu językach
Obiekt czytelnika udostępnia metody identyfikowania dostępnych języków strumieni w pliku. Liczbę obsługiwanych języków dla danych wyjściowych można pobrać, wywołując IWMReaderAdvanced4::GetLanguageCount. Następnie możesz pobrać szczegółowe informacje o każdym języku poprzez wywołania IWMReaderAdvanced4::GetLanguage.
Język do odtwarzania można określić, przekazując indeks tego języka do czytnika za pomocą wywołania funkcji IWMReaderAdvanced2::SetOutputSetting. Spowoduje to wybranie określonego języka przy zachowaniu automatycznego wyboru strumienia dla innych obiektów wzajemnego wykluczania w pliku.
Tematy pokrewne
-
interfejs IWMStreamConfig3