共用方式為


IMFPMediaPlayer::SetPosition 方法 (mfplay.h)

重要 廢棄。 此 API 可能會從未來的 Windows 版本中移除。 應用程式應該使用 媒體會話 播放。
 

設定播放位置。

語法

HRESULT SetPosition(
  [in] REFGUID           guidPositionType,
  [in] const PROPVARIANT *pvPositionValue
);

參數

[in] guidPositionType

播放位置的時間單位。 定義下列值。

意義
MFP_POSITIONTYPE_100NS
100 奈秒單位。

pvPositionValue的值必須是LARGE_INTEGER

  • variant 類型 (vt) : VT_I8
  • Variant 成員: hVal

[in] pvPositionValue

新的播放位置。 此參數的意義和資料類型是由 guidPositionType 參數表示。

傳回值

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

傳回碼 描述
S_OK
此方法已成功。
E_INVALIDARG
無效引數。
HRESULT_FROM_WIN32 ( ERROR_SEEK )
pvPositionValue的值無效。
MF_E_INVALIDREQUEST
沒有已排入佇列的媒體專案。
MF_E_SHUTDOWN
已呼叫物件的 Shutdown 方法。

備註

如果您在播放停止時呼叫此方法,新的位置會在播放繼續之後生效。

這個方法會以非同步方式完成。 當作業完成時,會叫用應用程式的 IMFPMediaPlayerCallback::OnMediaPlayerEvent 回呼方法。 事件種類 MFP_EVENT_TYPE_POSITION_SET

如果在呼叫 SetPosition 之前啟動播放,則會在新的位置繼續播放。 如果播放已暫停,則會重新整理視訊,以在新位置顯示目前的畫面。

如果您對 SetPosition 進行兩次連續呼叫,且 guidPositionType 等於 MFP_POSITIONTYPE_100NS,而第二次呼叫會在第一次呼叫完成之前進行,則第二次呼叫會取代第一個呼叫。 已取代呼叫的狀態碼會設定為在該呼叫的事件資料中 S_FALSE 。 此行為可防止對 SetPosition重複呼叫過多延遲,因為每個呼叫可能會強制媒體來源執行相對冗長的搜尋作業。

需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 mfplay.h

另請參閱

IMFPMediaPlayer

使用 MFPlay 進行音訊/視訊播放