여러 언어를 지원하려면
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
스트림과 메타데이터 모두에서 여러 언어를 지원할 수 있습니다. Windows Media Format SDK에서 여러 언어 지원의 핵심은 지원되는 언어 목록을 유지하는 IWMLanguageList 인터페이스입니다. 언어 목록은 지원되는 각 언어에 여러 언어를 처리할 때 SDK의 다양한 개체에 사용되는 인덱스를 제공합니다.
IWMLanguageList::AddLanguageByRFC1766String 메서드는 목록에 언어를 추가합니다. IWMLanguageList::GetLanguageCount를 사용하여 총 언어 수를 가져온 다음 각각에 대해 IWMLanguageList::GetLanguageDetails를 호출하는 언어를 반복하여 목록에 이미 있는 언어를 식별할 수 있습니다. 언어 인덱스는 0부터 시작합니다.
언어별 상호 제외를 구성하려면
언어별로 간단한 상호 제외 개체를 구성하는 것은 매우 간단합니다. 이제 각 스트림이 언어와 연결됩니다. 스트림과 연결된 언어는 IWMStreamConfig3::SetLanguage를 사용하여 설정할 수 있습니다. 상호 배타적 스트림을 모두 구성한 후에는 다른 형식과 마찬가지로 상호 제외 개체를 만드면 됩니다. 그런 다음 형식에 대한 CLSID_WMMUTEX_Language 전달하는 IWMMutualExclusion::SetType 을 호출합니다.
배타적 스트림이 비트 전송률로 상호 배타적이면 언어에서 상호 배타적인 스트림은 더 복잡해집니다. 이 경우 다음 단계를 수행하여 상호 배타적인 레코드를 사용해야 합니다.
- 각 언어에서 서로 다른 비트 전송률의 스트림에 대한 상호 제외 개체를 만듭니다. 비트 전송률로 상호 제외 개체를 만드는 방법에 대한 자세한 내용은 다중 비트 속도 상호 제외 사용을 참조하세요.
- 상호 제외 개체를 만듭니다. IWMMutualExclusion::SetType을 호출하고 CLSID_WMMUTEX_Language 전달하여 언어별 독점성을 지정합니다.
- IWMMutualExclusion의 QueryInterface 메서드를 호출하여 2단계에서 만든 상호 제외 개체의 IWMMutualExclusion2 인터페이스에 대한 포인터를 가져옵니다.
- 각 언어에 대해 IWMMutualExclusion2::AddRecord 메서드를 한 번 호출하여 상호 배타적인 스트림 레코드를 만듭니다.
- 4단계에서 만든 각 레코드에 대해 IWMMutualExclusion2::AddStreamForRecord를 호출하여 적절한 언어의 스트림을 추가합니다.
여러 언어로 파일을 읽으려면
reader 개체는 파일에서 사용 가능한 스트림 언어를 식별하는 메서드를 제공합니다. IWMReaderAdvanced4::GetLanguageCount를 호출하여 출력에 대해 지원되는 언어 수를 검색할 수 있습니다. 그런 다음 IWMReaderAdvanced4::GetLanguage를 호출하여 각 언어에 대한 세부 정보를 검색할 수 있습니다.
IWMReaderAdvanced2::SetOutputSetting을 호출하여 해당 언어의 인덱스를 판독기에게 전달하여 재생할 언어를 지정할 수 있습니다. 그러면 파일의 다른 상호 제외 개체에 대한 자동 스트림 선택을 유지하면서 지정된 언어를 선택합니다.
관련 항목