Megosztás a következőn keresztül:


Kimeneti formátumok hozzárendelése

[A laphoz társított funkció, Windows Media Format 11 SDKegy régi funkció. Kiszorította a Source Reader és a Sink Writer. Forrásolvasó és Sülyesztőíró-t a Windows 10-hez és Windows 11-hez optimalizálták. A Microsoft határozottan javasolja, hogy az új kód lehetőleg Source Reader és Sink Writer használja a Windows Media Format 11 SDKhelyett. A Microsoft javasolja, hogy az örökölt API-kat használó meglévő kódot át kell írni az új API-k használatára, ha lehetséges.]

Egyes kodekek több tömörítetlen formátumba bonthatják a digitális médiaadatokat. Egy adott kimenet összes támogatott formátuma megtalálható az aszinkron olvasó vagy a szinkron olvasó használatával.

A kimenet összes elérhető formátumának vizsgálatához hajtsa végre az alábbi lépéseket. Ezek az eljárások azonosak az aszinkron olvasó és a szinkron olvasó esetében is. Ahol a felületnevek eltérőek, a szinkron olvasó metódusai zárójelben jelennek meg az aszinkron olvasó metódusai után.

  1. Hozzon létre egy olvasóobjektumot, és töltsön be egy fájlt olvasásra. További információ: Olvasó létrehozása és Fájl megnyitása (vagy Szinkronizálási olvasó létrehozása és Fájlmegnyitása).

  2. Határozza meg azt a kimenetet, amelyhez meg szeretné keresni a rendelkezésre álló formátumokat. Ha még nem tudja, hogy melyik kimenetet szeretné használni, a fájl kimeneteit a Kimeneti számok azonosításacímű témakörben ismertetett eljárásokkal azonosíthatja.

  3. A kívánt kimenethez elérhető formátumok teljes számának lekéréséhez hívja meg IWMReader::GetOutputFormatCount (vagy IWMSyncReader::GetOutputFormatCount).

  4. Futtasd végig egyenként a rendelkezésre álló formátumokat, és hajtsa végre az alábbi lépéseket mindegyiknél:

    • Az aktuális kimeneti formátum IWMOutputMediaProps felületének lekéréséhez hívja meg IWMReader::GetOutputFormat (vagy IWMSyncReader::GetOutputFormat).

    • A kimeneti formátum WM_MEDIA_TYPE szerkezetének lekéréséhez két hívást kell intéznie IWMMediaProps::GetMediaType. Végezzük el az első hívást, hogy lekérjük a struktúra méretét, majd foglaljunk le memóriát ennek alapján, és a második hívásban adjuk át a lefoglalt memória mutatóját.

    • Keresse meg a média altípusát a kimeneti formátumban a WM_MEDIA_TYPE.subtype.

    • Videó esetén, ha az aktuális altípus a kimenethez használni kívánt formátum, bontsa ki a hurkot. Ellenkező esetben lépjen a következő iterációra.

      Hang esetén ellenőriznie kell a WAVEFORMATEX szerkezetében szereplő értékeket a követelményeknek megfelelően. WM_MEDIA_TYPE.pbFormat a hangkimenetek WAVEFORMATEX struktúrájára mutat.

  5. Ha megtalálta a kívánt kimenetet, állítsa be az olvasóhoz úgy, hogy meghívja IWMReader::SetOutputProps (vagy IWMSyncReader::SetOutputProps). A hurok első lépésében beszerzett IWMOutputMediaProps felületre mutató mutatót kell átadnia.

IWMMediaProps interfész

IWMOutputMediaProps interfész

IWMReader Interface

IWMSyncReader Interface

Kimenetek használata