Bagikan melalui


Untuk Mendukung Beberapa Bahasa

[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK , adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Penampung telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Sink Writer alih-alih Windows Media Format 11 SDK , jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Anda dapat mendukung beberapa bahasa baik dalam aliran maupun dalam metadata. Inti dari dukungan beberapa bahasa dalam Windows Media Format SDK adalah antarmuka IWMLanguageList, yang mempertahankan daftar bahasa yang didukung. Daftar bahasa memberi setiap bahasa yang didukung sebuah indeks, yang digunakan dalam berbagai objek di SDK saat mengelola beberapa bahasa.

MetodeIWMLanguageList::AddLanguageByRFC1766String menambahkan bahasa ke daftar. Anda dapat mengidentifikasi bahasa yang sudah ada dalam daftar dengan mendapatkan jumlah total bahasa dengan IWMLanguageList::GetLanguageCount lalu melakukan perulangan melalui bahasa yang memanggil IWMLanguageList::GetLanguageDetails untuk masing-masing bahasa. Indeks bahasa berbasis nol.

Untuk Mengonfigurasi Pengecualian Saling menurut Bahasa

Mengonfigurasi objek saling mengecualikan yang sederhana menurut bahasa itu mudah dilakukan. Setiap aliran sekarang dikaitkan dengan bahasa. Bahasa yang terkait dengan aliran dapat diatur menggunakan IWMStreamConfig3::SetLanguage. Setelah semua aliran yang saling eksklusif dikonfigurasi, cukup buat objek pengecualian mutual seperti yang dilakukan untuk jenis lainnya. Kemudian panggil IWMMutualExclusion::SetType dengan memberikan CLSID_WMMUTEX_Language untuk jenis tersebut.

Aliran yang saling eksklusif berdasarkan bahasa menjadi lebih rumit ketika aliran eksklusif juga saling eksklusif berdasarkan laju bit. Dalam hal ini Anda harus menggunakan rekaman yang saling eksklusif, dengan melakukan langkah-langkah berikut:

  1. Buat objek pengecualian bersama untuk aliran laju bit yang berbeda dalam setiap bahasa. Untuk informasi selengkapnya tentang membuat objek pengecualian bersama untuk laju bit, lihat Menggunakan Pengecualian Bersama Multi Laju Bit.
  2. Buat objek pengecualian bersama. Panggil IWMMutualExclusion::SetType dan teruskan CLSID_WMMUTEX_Language untuk menentukan pengecualian berdasarkan bahasa.
  3. Dapatkan penunjuk ke antarmuka IWMMutualExclusion2 dari objek pengecualian timbal balik yang dibuat pada langkah 2 dengan memanggil metode QueryInterface dari IWMMutualExclusion.
  4. Panggil metode IWMMutualExclusion2::AddRecord sekali untuk setiap bahasa, untuk membuat rekaman stream yang akan saling eksklusif.
  5. Untuk setiap rekaman yang dibuat di langkah 4, tambahkan aliran bahasa yang sesuai dengan panggilan ke IWMMutualExclusion2::AddStreamForRecord.

Untuk Membaca File dengan Beberapa Bahasa

Objek pembaca menyediakan metode untuk mengidentifikasi bahasa aliran yang tersedia dalam file. Anda dapat mengambil jumlah bahasa yang didukung untuk output dengan memanggil IWMReaderAdvanced4::GetLanguageCount. Anda kemudian dapat mengambil detail tentang setiap bahasa dengan panggilan ke IWMReaderAdvanced4::GetLanguage.

Anda dapat menentukan bahasa yang akan diputar dengan meneruskan indeks bahasa tersebut ke pembaca dengan panggilan ke IWMReaderAdvanced2::SetOutputSetting. Ini akan memilih bahasa yang ditentukan sambil mempertahankan pemilihan aliran otomatis untuk objek pengecualian bersama lainnya dalam file.

Topik Tingkat Lanjut

IWMLanguageList Interface

antarmuka IWMMutualExclusion

Antarmuka IWMMutualExclusion2

antarmuka IWMReaderAdvanced2

antarmuka IWMReaderAdvanced4

Antarmuka IWMStreamConfig3