Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erstellt ein Aktivierungsobjekt für die ASF-Streamingsenke.
Die ASF-Streamingsenke ermöglicht es einer Anwendung, Streamingpakete im Advanced Systems Format (ASF) in einen HTTP-Bytestream zu schreiben.
Syntax
HRESULT MFCreateASFStreamingMediaSink(
IMFByteStream *pIByteStream,
IMFMediaSink **ppIMediaSink
);
Parameter
pIByteStream
Ein Zeiger auf ein Bytestreamobjekt, in das die ASF-Mediensenke den gestreamten Inhalt schreibt.
ppIMediaSink
Empfängt einen Zeiger auf die IMFMediaSink-Schnittstelle des ASF-Streaming-Mediensenkenobjekts. Zum Erstellen der Mediensenke muss die Anwendung IMFActivate::ActivateObject auf dem empfangenen Zeiger aufrufen. Der Aufrufer muss den Schnittstellenzeiger freigeben.
Rückgabewert
Wenn diese Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Um die ASF-Streamingsenke in einem anderen Prozess zu erstellen, rufen Sie MFCreateASFStreamingMediaSinkActivate auf.
Eine Anwendung kann einen Zeiger auf das ASF ContentInfo-Objekt abrufen, indem sie IUnknown::QueryInterface für das Mediensenkenobjekt aufruft, das im ppIMediaSink-Parameter empfangen wird. Das ContentInfo-Objekt wird verwendet, um die Encoderkonfigurationseinstellungen festzulegen, Streameigenschaften bereitzustellen, die von einem ASF-Profil bereitgestellt werden, und Metadateninformationen hinzuzufügen. Diese Konfigurationseinstellungen füllen die verschiedenen ASF-Headerobjekte der codierten ASF-Datei auf. Weitere Informationen finden Sie unter
Festlegen von Eigenschaften im ContentInfo-Objekt.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie eine Mediensenke für eine ASF-Quelle erstellen. In diesem Beispiel werden die Streamkonfigurationseinstellungen aus der Quelle in das ContentInfo-Objekt kopiert, das das ASF-Headerobjekt der Ausgabedatei darstellt.
// Creates an an instance of the ASF streaming sink.
HRESULT CreateASFStreamingSink(
IMFMediaSource *pSource,
IMFByteStream *pOutputByteStream,
IMFMediaSink **ppMediaSink
)
{
IMFPresentationDescriptor* pSourcePD = NULL;
IMFASFProfile* pASFProfile = NULL;;
IMFMediaSink* pMediaSink = NULL;
IMFASFContentInfo* pASFContentInfo = NULL;
// Create the streaming media sink for the ASF file
HRESULT hr = MFCreateASFStreamingMediaSink(pOutputByteStream, &pMediaSink);
if (FAILED(hr))
{
goto done;
}
//
// Transfer the ASF profile from the media source to the sink.
//
// Get the presentation descriptor from the source.
hr = pSource->CreatePresentationDescriptor(&pSourcePD);
if (FAILED(hr))
{
goto done;
}
// Convert the presentation descriptor to an ASF profile.
hr = MFCreateASFProfileFromPresentationDescriptor(pSourcePD, &pASFProfile);
if (FAILED(hr))
{
goto done;
}
hr = pMediaSink->QueryInterface(IID_PPV_ARGS(&pASFContentInfo));
if (FAILED(hr))
{
goto done;
}
// Set the profile on the sink.
hr = pASFContentInfo->SetProfile(pASFProfile);
if (FAILED(hr))
{
goto done;
}
*ppMediaSink = pMediaSink;
(*ppMediaSink)->AddRef();
done:
SafeRelease(&pSourcePD);
SafeRelease(&pASFProfile);
SafeRelease(&pASFContentInfo);
SafeRelease(&pMediaSink);
return hr;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | wmcontainer.h |
| Bibliothek | Mf.lib |
| DLL | Mf.dll |