다음을 통해 공유


여러 언어를 지원하려면

[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를 호출합니다.

단독 스트림도 비트 전송률로 함께 배타적이면 언어에서 상호 배타적인 스트림은 더 복잡해집니다. 이 경우 다음 단계를 수행하여 상호 배타적인 레코드를 사용해야 합니다.

  1. 각 언어에서 서로 다른 비트 전송률 스트림에 대한 상호 제외 개체를 만듭니다. 비트 전송률로 상호 제외 개체를 만드는 방법에 대한 자세한 내용은 다중 비트 전송률 상호 제외사용하세요.
  2. 상호 제외 개체를 만듭니다. IWMMutualExclusion::SetType 호출하고 CLSID_WMMUTEX_Language 전달하여 언어별 독점성을 지정합니다.
  3. IWMMutualExclusionQueryInterface 메서드를 호출하여 2단계에서 만든 상호 제외 개체의 IWMutualExclusion2 인터페이스에 대한 포인터를 가져옵니다.
  4. 각 언어에 대해 IWMutualExclusion2::AddRecord 메서드를 한 번 호출하여 상호 배타적인 스트림 레코드를 만듭니다.
  5. 4단계에서 만든 각 레코드에 대해 IWMMutualExclusion2::AddStreamForRecord호출하여 적절한 언어의 스트림을 추가합니다.

여러 언어로 파일을 읽으려면

판독기 개체는 파일에서 사용 가능한 스트림 언어를 식별하는 메서드를 제공합니다. IWMReaderAdvanced4::GetLanguageCount호출하여 출력에 대해 지원되는 언어 수를 검색할 수 있습니다. 그런 다음 IWMReaderAdvanced4::GetLanguage호출하여 각 언어에 대한 세부 정보를 검색할 수 있습니다.

IWMReaderAdvanced2::SetOutputSetting호출하여 해당 언어의 인덱스를 판독기로 전달하여 재생할 언어를 지정할 수 있습니다. 그러면 파일의 다른 상호 제외 개체에 대한 자동 스트림 선택을 유지하면서 지정된 언어를 선택합니다.

고급 항목

IWMLanguageList 인터페이스

IWMMutualExclusion 인터페이스

IWMMutualExclusion2 인터페이스

IWMReaderAdvanced2 인터페이스

IWMReaderAdvanced4 인터페이스

IWMStreamConfig3 인터페이스