共用方式為


IMFASFIndexer::GetSeekPositionForValue 方法 (wmcontainer.h)

給定所需的搜尋時間,取得客戶端應該開始讀取數據的位移。

語法

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

參數

[in] pvarValue

要取得位置的索引專案值。 此值的格式會根據索引的類型而有所不同,此類型是在索引標識碼中指定。 針對以時間為基礎的索引編製,變異類型 會VT_I8 ,而此值為所需的搜尋時間,以 100 奈秒為單位。

[in] pIndexIdentifier

識別數據流編號和索引類型的 ASF_INDEX_IDENTIFIER 結構的指標。

[out] pcbOffsetWithinData

接收 ASF 資料物件之數據區段中的位移。 位移是以位元組為單位,且相對於封包 0 的開頭。 位移會提供客戶端應該從數據流開始讀取的起始位置。 此位置可能不會完全符合要求的搜尋時間。

針對反向播放,如果所需的搜尋位置之後沒有主要畫面格存在,此參數就會收到值 MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT。 在此情況下,搜尋位置應為1位元組,並傳遞數據區段的結尾。

[out] phnsApproxTime

接收位移位在 於於在參數中傳 回之位移之數據的近似時間戳。 此值的精確度等於 ASF 索引的索引間隔,通常大約 1 秒。

  • 如果 pIndexIdentifier 中指定的索引類型 GUID_NULL (時間索引編製) ,此參數可以是 NULL
  • 對於所有其他索引類型,此參數必須是 NULL
如果無法判斷近似時間戳,此參數會收到值 MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN

[out] pdwPayloadNumberOfStreamWithinPacket

接收承載的承載編號,其中包含指定數據流的資訊。 封包可以包含多個承載,每個承載都包含不同數據流的數據。 此參數可以是 Null

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
MF_E_ASF_OUTOFRANGE
要求的搜尋時間超出範圍。
MF_E_NO_INDEX
指定數據流的指定型別沒有索引存在。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wmcontainer.h
程式庫 Mfuuid.lib

另請參閱

ASF Index 物件

IMFASFIndexer

MFTIME