IMFASFIndexer::GetSeekPositionForValue-Methode (wmcontainer.h)

Ruft bei einer gewünschten Suchzeit den Offset ab, ab dem der Client mit dem Lesen von Daten beginnen soll.

Syntax

HRESULT GetSeekPositionForValue(
  [in]  const PROPVARIANT    *pvarValue,
  [in]  ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  [out] QWORD                *pcbOffsetWithinData,
  [out] MFTIME               *phnsApproxTime,
  [out] DWORD                *pdwPayloadNumberOfStreamWithinPacket
);

Parameter

[in] pvarValue

Der Wert des Indexeintrags, für den die Position abgerufen werden soll. Das Format dieses Werts variiert je nach Indextyp, der im Indexbezeichner angegeben wird. Für die zeitbasierte Indizierung ist der Variantentyp VT_I8 , und der Wert ist die gewünschte Suchzeit in 100 Nanosekundeneinheiten.

[in] pIndexIdentifier

Zeiger auf eine ASF_INDEX_IDENTIFIER Struktur, die die Streamnummer und den Indextyp identifiziert.

[out] pcbOffsetWithinData

Empfängt den Offset innerhalb des Datensegments des ASF-Datenobjekts. Der Offset ist in Bytes und relativ zum Anfang von Paket 0. Der Offset gibt die Ausgangsposition an, von der der Client mit dem Lesen aus dem Stream beginnen soll. Dieser Speicherort entspricht möglicherweise nicht genau der angeforderten Suchzeit.

Wenn bei der umgekehrten Wiedergabe nach der gewünschten Suchposition kein Keyframe vorhanden ist, empfängt dieser Parameter den Wert MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT. In diesem Fall sollte die Suchposition 1 Byte am Ende des Datensegments sein.

[out] phnsApproxTime

Empfängt den ungefähren Zeitstempel der Daten, die sich am Offset befinden, der im parameter pcbOffsetWithinData zurückgegeben wird. Die Genauigkeit dieses Werts entspricht dem Indizierungsintervall des ASF-Indexes, in der Regel etwa 1 Sekunde.

  • Wenn der in pIndexIdentifier angegebene Indextyp GUID_NULL (Zeitindizierung) ist, kann dieser Parameter NULL sein.
  • Für alle anderen Indextypen muss dieser Parameter NULL sein.
Wenn der ungefähre Zeitstempel nicht bestimmt werden kann, empfängt dieser Parameter den Wert MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN.

[out] pdwPayloadNumberOfStreamWithinPacket

Empfängt die Nutzlastnummer der Nutzlast, die die Informationen für den angegebenen Stream enthält. Pakete können mehrere Nutzlasten enthalten, die jeweils Daten für einen anderen Stream enthalten. Dieser Parameter kann NULL sein.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
MF_E_ASF_OUTOFRANGE
Die angeforderte Suchzeit liegt außerhalb des Bereichs.
MF_E_NO_INDEX
Es ist kein Index des angegebenen Typs für den angegebenen Stream vorhanden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wmcontainer.h
Bibliothek Mfuuid.lib

Weitere Informationen

ASF-Indexobjekt

IMFASFIndexer

MFTIME