Wiedergeben eines Dateiclips
[MFPlay ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es kann in nachfolgenden Versionen geändert oder entfernt werden. ]
In diesem Thema wird beschrieben, wie Ein Segment einer Mediendatei in MFPlay wiedergegeben wird, indem die Start- und Stoppzeiten für die Wiedergabe festgelegt werden.
So geben Sie einen Dateiclip wieder
- Rufen Sie IMFPMediaPlayer::CreateMediaItemFromURL oder IMFPMediaPlayer::CreateMediaItemFromObject auf, um ein Medienelement für die Datei zu erstellen.
- Optional können Sie die Gesamtdauer der Datei abrufen, wie unter Abrufen der Wiedergabedauer beschrieben.
- Rufen Sie IMFPMediaItem::SetStartStopPosition auf, um die Start- und Stoppzeiten festzulegen. Die Beendigungszeit darf die Dateidauer nicht überschreiten.
- Rufen Sie IMFPMediaPlayer::SetMediaItem auf, um die Wiedergabe zu starten.
Im folgenden Beispiel wird die blockierende Version von CreateMediaItemFromURL verwendet. Wenn die nicht blockierende Version verwendet wird, sollte der Code, der nach CreateMediaItemFromURL angezeigt wird, im Handler für das MFP_EVENT_TYPE_MEDIAITEM_CREATED-Ereignis platziert werden. Weitere Informationen zu Ereignissen in MFPlay finden Sie unter Empfangen von Ereignissen vom Player.
Um die Dateidauer abzurufen, ruft dieses Beispiel die GetPlaybackDuration
Funktion auf, die im Thema Abrufen der Wiedergabedauer gezeigt wird.
HRESULT PlayMediaClip(
IMFPMediaPlayer *pPlayer,
PCWSTR pszURL,
LONGLONG hnsStart,
LONGLONG hnsEnd
)
{
IMFPMediaItem *pItem = NULL;
PROPVARIANT varStart, varEnd;
ULONGLONG hnsDuration = 0;
HRESULT hr = pPlayer->CreateMediaItemFromURL(pszURL, TRUE, 0, &pItem);
if (FAILED(hr))
{
goto done;
}
hr = GetPlaybackDuration(pItem, &hnsDuration);
if (FAILED(hr))
{
goto done;
}
if ((ULONGLONG)hnsEnd > hnsDuration)
{
hnsEnd = hnsDuration;
}
hr = InitPropVariantFromInt64(hnsStart, &varStart);
if (FAILED(hr))
{
goto done;
}
hr = InitPropVariantFromInt64(hnsEnd, &varEnd);
if (FAILED(hr))
{
goto done;
}
hr = pItem->SetStartStopPosition(
&MFP_POSITIONTYPE_100NS,
&varStart,
&MFP_POSITIONTYPE_100NS,
&varEnd
);
if (FAILED(hr))
{
goto done;
}
hr = pPlayer->SetMediaItem(pItem);
done:
SafeRelease(&pItem);
return hr;
}
Anforderungen
MFPlay erfordert Windows 7.
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für