IMFPMediaItem::SetStartStopPosition 方法 (mfplay.h)
重要 废弃。 此 API 可能会从 Windows 的未来版本中删除。 应用程序应使用 媒体会话 进行播放。
设置媒体项的开始和停止时间。
语法
HRESULT SetStartStopPosition(
[in] const GUID *pguidStartPositionType,
[in] const PROPVARIANT *pvStartValue,
[in] const GUID *pguidStopPositionType,
[in] const PROPVARIANT *pvStopValue
);
参数
[in] pguidStartPositionType
开始位置的时间单位。 请参阅“备注”。 此参数可以为 NULL。
[in] pvStartValue
开始位置。 此参数的含义和数据类型由 pguidStartPositionType 参数指示。 如果 pguidStartPositionType 为 NULL,pvStartValue 参数必须为 NULL,否则不能为 NULL。
[in] pguidStopPositionType
停止位置的时间单位。 请参阅“备注”。 此参数可以为 NULL。
[in] pvStopValue
停止位置。 此参数的含义和数据类型由 pguidStopPositionType 参数指示。 如果 pguidStopPositionType 为 NULL,则 pvStopValue 参数必须为 NULL,否则不能为 NULL。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
无效的参数。 |
|
启动或停止时间无效。 以下任一项都可能导致此错误:
|
注解
默认情况下,媒体项从文件的开头到结尾播放。 此方法调整开始时间和/或停止时间:
- 若要设置开始时间,请为 pguidStartPositionType 和 pvStartValue 传递非 NULL 值。
- 若要设置停止时间,请为 pguidStopPositionType 和 pvStopValue 传递非 NULL 值。
值 | 说明 |
---|---|
MFP_POSITIONTYPE_100NS | 100 纳秒单位。 pvStartValue 或 pvStopValue) (time 参数使用以下数据类型:
|
下次使用此媒体项调用 IMFPMediaPlayer::SetMediaItem 时,将使用调整后的开始和停止时间。 如果已在播放器上设置了媒体项,则除非再次调用 SetMediaItem ,否则不会发生更改。
示例
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;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfplay.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈