IMFPMediaPlayer::GetPosition 方法 (mfplay.h)
重要 废弃。 此 API 可能会从 Windows 的未来版本中删除。 应用程序应使用 媒体会话 进行播放。
获取当前播放位置。
语法
HRESULT GetPosition(
[in] REFGUID guidPositionType,
[out] PROPVARIANT *pvPositionValue
);
参数
[in] guidPositionType
指定播放位置的时间单位。 定义了以下值。
值 | 含义 |
---|---|
|
100 纳秒单位。
pvPositionValue 中返回的值是LARGE_INTEGER。
|
[out] pvPositionValue
指向接收播放位置的 PROPVARIANT 的指针。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
无效的参数。 |
|
没有媒体项排队。 |
|
调用了对象的 Shutdown 方法。 |
注解
播放位置是相对于媒体项的开始时间计算的,可以通过调用 IMFPMediaItem::SetStartStopPosition 进行指定。 例如,如果将开始时间设置为 20 秒,而源持续时间为 60 秒, 则 GetPosition 返回的值范围为 0-40 秒。
示例
以下代码获取当前位置(以 100 纳秒为单位)作为 LONGLONG 值。
HRESULT GetPositionHNS(
IMFPMediaPlayer *pPlayer,
LONGLONG *phnsPosition // Receives the position in hns.
)
{
HRESULT hr = S_OK;
PROPVARIANT var;
PropVariantInit(&var);
*phnsPosition = 0;
hr = pPlayer->GetPosition(MFP_POSITIONTYPE_100NS, &var);
if (SUCCEEDED(hr))
{
*phnsPosition = var.hVal.QuadPart;
}
PropVariantClear(&var);
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfplay.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈