Compartilhar via


Método IMFPMediaItem::SetStartStopPosition (mfplay.h)

Importante Preterido. Essa API pode ser removida de versões futuras do Windows. Os aplicativos devem usar a Sessão de Mídia para reprodução.
 

Define a hora de início e parada para o item de mídia.

Sintaxe

HRESULT SetStartStopPosition(
  [in] const GUID        *pguidStartPositionType,
  [in] const PROPVARIANT *pvStartValue,
  [in] const GUID        *pguidStopPositionType,
  [in] const PROPVARIANT *pvStopValue
);

Parâmetros

[in] pguidStartPositionType

Unidade de tempo para a posição inicial. Consulte Observações. Este parâmetro pode ser NULL.

[in] pvStartValue

Posição inicial. O significado e o tipo de dados desse parâmetro são indicados pelo parâmetro pguidStartPositionType . O parâmetro pvStartValue deverá ser NULL se pguidStartPositionType for NULL e não puder ser NULL caso contrário.

[in] pguidStopPositionType

Unidade de tempo para a posição de parada. Consulte Observações. Este parâmetro pode ser NULL.

[in] pvStopValue

Parar posição. O significado e o tipo de dados desse parâmetro são indicados pelo parâmetro pguidStopPositionType . O parâmetro pvStopValue deverá ser NULL se pguidStopPositionType for NULL e não puder ser NULL caso contrário.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
Argumento inválido.
MF_E_OUT_OF_RANGE
Hora de início ou parada inválida. Qualquer um dos itens a seguir pode causar esse erro:
  • Tempo menor que zero.
  • Tempo maior que a duração total do item de mídia.
  • Tempo de parada menor que a hora de início.

Comentários

Por padrão, um item de mídia é reproduzido do início ao fim do arquivo. Esse método ajusta a hora de início e/ou a hora de parada:

  • Para definir a hora de início, passe valores não NULL para pguidStartPositionType e pvStartValue.
  • Para definir o tempo de parada, passe valores não NULL para pguidStopPositionType e pvStopValue.
Os parâmetros pguidStartPositionType e pguidStopPositionType dão as unidades de tempo usadas. Atualmente, o único valor com suporte é MFP_POSITIONTYPE_100NS.
Valor Descrição
MFP_POSITIONTYPE_100NS Unidades de 100 nanossegundos. O parâmetro time (pvStartValue ou pvStopValue) usa o seguinte tipo de dados:
  • Tipo de variante (vt): VT_I8
  • Membro Variant: hVal
Para limpar uma hora definida anteriormente, use um PROPVARIANT vazio (VT_EMPTY).
 

Os horários de início e parada ajustados são usados na próxima vez que IMFPMediaPlayer::SetMediaItem for chamado com este item de mídia. Se o item de mídia já estiver definido no player, a alteração não acontecerá, a menos que você chame SetMediaItem novamente.

Exemplos

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;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mfplay.h

Confira também

Como reproduzir um clipe de arquivo

IMFPMediaItem

Usando mfplay para reprodução de áudio/vídeo