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.
[Bei dem auf dieser Seite gezeigten Feature MFPlay handelt es sich um ein Legacyfeature. Es wurde durch MediaPlayer und IMFMediaEngine abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass in neuem Code wenn möglich MediaPlayer und IMFMediaEngine anstelle von DirectShow verwendet wird. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, wenn möglich umgeschrieben wird, um die neuen APIs zu verwenden.]
In diesem Thema wird beschrieben, wie Sie mithilfe von MFPlay eine Vorschau von Videos von einer Videokamera anzeigen.
MFPlay bietet die einfachste Möglichkeit in Microsoft Media Foundation, eine Vorschau von Videos von einem Aufnahmegerät anzuzeigen. Sie sollten MFPlay verwenden, wenn alle folgenden Bedingungen zutreffen:
- Sie müssen das Video nicht in einer Datei erfassen.
- Sie benötigen keine differenzierte Kontrolle darüber, wie das Video gerendert wird. (Sie müssen z. B. nicht die Erstellung des Direct3D-Geräts steuern.)
- Sie müssen die Videodaten von der Kamera vor dem Rendern nicht verarbeiten.
Andernfalls ist der Quellleser möglicherweise eine bessere Option.
Führen Sie die folgenden Schritte aus, um MFPlay mit einem Videoaufnahmegerät zu verwenden:
- Erstellen Sie eine Medienquelle für das Aufnahmegerät. Weitere Informationen finden Sie unter Aufzählen von Videoaufnahmegeräten.
- Rufen Sie MFPCreateMediaPlayer auf, um eine Instanz des Playerobjekts zu erstellen.
- Rufen Sie die Methode IMFPMediaPlayer::CreateMediaItemFromObject auf. Übergeben Sie einen Zeiger an die IMFMediaSource-Schnittstelle der Medienquelle. Die Methode empfängt einen Zeiger auf die IMFPMediaItem-Schnittstelle.
- Rufen Sie IMFPMediaPlayer::SetMediaItem auf.
- Rufen Sie IMFPMediaPlayer::Play auf, um eine Vorschau anzuzeigen.
Diese Schritte sind im folgenden Code dargestellt:
IMFPMediaItem *pItem = NULL;
if (SUCCEEDED(hr))
{
hr = MFPCreateMediaPlayer(
NULL, // URL.
FALSE, // Do not start playback yet.
0, // Option flags.
NULL, // Callback interface.
hwnd,
&g_pPlayer
);
}
if (SUCCEEDED(hr))
{
hr = g_pPlayer->CreateMediaItemFromObject(
g_pSource,
TRUE, // Blocking call.
0, // User data.
&pItem
);
}
if (SUCCEEDED(hr))
{
hr = g_pPlayer->SetMediaItem(pItem);
}
if (SUCCEEDED(hr))
{
hr = g_pPlayer->Play();
}
SafeRelease(&pItem);
In einer typischen Anwendung stellen Sie einen Zeiger auf eine Rückrufschnittstelle in der MFPCreateMediaPlayer-Funktion bereit und verwenden die Rückrufschnittstelle, um Ereignisse vom Player abzurufen. Der Einfachheit halber überspringt der hier gezeigte Code diese Schritte. Weitere Informationen finden Sie unter Erste Schritte mit MFPlay.
Herunterfahren
Bevor die Anwendung beendet wird, fahren Sie die Medienquelle und das Playerobjekt wie folgt herunter:
- Rufen Sie IMFMediaSource::Shutdown für die Medienquelle auf.
- Rufen Sie IMFPMediaPlayer::Shutdown für das Playerobjekt auf.
if (g_pSource)
{
g_pSource->Shutdown();
g_pSource->Release();
g_pSource = NULL;
}
if (g_pPlayer)
{
g_pPlayer->Shutdown();
g_pPlayer->Release();
g_pPlayer = NULL;
}
Anforderungen
MFPlay erfordert Windows 7.
Zugehörige Themen