Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byla nahrazena čtečkou zdroje a zapisovačem jímky. Čtečka zdrojů a Zapisovač jímky jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdrojů a Zapisovač výstupů místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
Zvuk kódovaný pomocí kodeku Windows Media Audio 9 Professional lze dekódovat do formátu Sony/Philips Digital Interconnect (S/PDIF). Pokud chcete vygenerovat výstup S/PDIF, proveďte následující kroky:
- Otevřete soubor, který obsahuje datový proud Windows Media Audio 9 Professional, zavoláním metody IWMReader::Open.
- Určete výstupní číslo požadovaného datového proudu. Další informace najdete v tématu Identifikace výstupních čísel.
- Zavolejte metodu IWMReaderAdvanced2::SetOutputSetting pro konfiguraci výstupu S/PDIF. Pro název nastavení použijte g_wszEnableWMAProSPDIFOutput. Datový typ je WMT_TYPE_BOOL; nastavte hodnotu na TRUE pro povolení výstupu S/PDIF.
- Získejte rozhraní výstupních vlastností (IWMOutputMediaProps) pro požadovaný výstupní formát použitím metody IWMReader::GetOutputFormat. Další informace o výčtu výstupních formátů naleznete v tématu Přiřazení výstupních formátů.
- Nastavte výstupní formát voláním IWMReader::SetOutputProps metoda. Předejte ukazatel na rozhraní IWMOutputMediaProps získané v kroku 4.
- Proveďte všechny další změny konfigurace a začněte přehrávat.
Poznámka
Předchozí kroky můžete provést u synchronní čtečky pomocí odpovídajících metod rozhraní IWMSyncReader.
Následující ukázkový kód ukazuje, jak nastavit zvukový stream na výstup zvuku jako data S/PDIF. Tato funkce předpokládá, že soubor již byl načten do čtečky a že bylo identifikováno výstupní číslo. Další informace o použití tohoto kódu naleznete v tématu Použití příkladů kódu.
HRESULT SetSPDIF(DWORD dwOutputNum, IWMReader* pReader)
{
HRESULT hr = S_OK;
IWMReaderAdvanced2* pReaderAdv = NULL;
IWMOutputMediaProps* pOutputProps = NULL;
BOOL fValue = TRUE;
// Get the advanced reader interface.
hr = pReader->QueryInterface(IID_IWMReaderAdvanced2,
(void**)&pReaderAdv);
GOTO_EXIT_IF_FAILED(hr);
// Set S/PDIF output.
hr = pReaderAdv->SetOutputSetting(dwOutputNum,
g_wszEnableWMAProSPDIFOutput,
WMT_TYPE_BOOL,
(BYTE*)&fValue,
sizeof(BOOL));
GOTO_EXIT_IF_FAILED(hr);
// Get the first output format for the stream.
// NOTE: You could also enumerate the available output formats
// and pick one to use.
hr = pReader->GetOutputFormat(dwOutputNum, 0, &pOutputProps);
GOTO_EXIT_IF_FAILED(hr);
// Set the output properties back on the reader.
hr = pReader->SetOutputProps(dwOutputNum, pOutputProps);
Exit:
SAFE_RELEASE(pReaderAdv);
SAFE_RELEASE(pOutputProps);
return hr;
}
Související témata