Share via


Método IAMTimelineObj::SetStartStop

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Observação

[Preterido. Essa API pode ser removida de versões futuras do Windows.]

 

O SetStartStop método define os tempos de início e parada do objeto, em relação ao pai do objeto.

Sintaxe

HRESULT SetStartStop(
   REFERENCE_TIME Start,
   REFERENCE_TIME Stop
);

Parâmetros

Iniciar

Nova hora de início, em unidades de 100 nanossegundos ou –1 para manter a hora de início existente.

Parar

Novo tempo de parada, em unidades de 100 nanossegundos ou –1 para manter o tempo de parada existente.

Retornar valor

Retorna um dos seguintes valores HRESULT :

Código de retorno Descrição
S_OK
Êxito.
E_INVALIDARG
Argumento inválido.
E_NOTIMPL
Não implementado.

 

Comentários

Faixas, composições e grupos não implementam esse método. Para esses objetos, a hora de início é sempre zero e o tempo de parada é o tempo máximo de parada dos objetos que eles contêm.

Não defina tempos sobrepostos em objetos de origem dentro da mesma faixa. Fazer isso pode causar comportamentos indefinidos.

Para objetos de origem, os horários de início e parada são independentes dos horários de início e parada de mídia. Alterar um par de valores não altera o outro. Para definir os horários de início e parada da mídia, chame o método IAMTimelineSrc::SetMediaTimes . Para obter mais informações, consulte Hora no DirectShow Editing Services.

Para obter cortes e transições precisos de quadro, defina os parâmetros Iniciar e Parar para enquadrar limites. Você pode usar o método IAMTimelineObj::FixTimes para converter um valor de tempo no limite de quadro mais próximo ou usar a função a seguir para converter do número do quadro para o tempo de referência:

REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps)
{
    double dt = (frame * 10000000 / fps);
    if (frame >= 0) 
    {
        dt += 0.5;    }
    else
    {
        dt -= 0.5;
    }
    return (REFERENCE_TIME)dt;
}

Observação

O arquivo de cabeçalho Qedit.h não é compatível com cabeçalhos Direct3D posteriores à versão 7.

 

Observação

Para obter qedit.h, baixe o SDK do Microsoft Windows Update para Windows Vista e .NET Framework 3.0. O Qedit.h não está disponível no SDK do Microsoft Windows para Windows 7 e .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Valor
parâmetro
Qedit.h
Biblioteca
Strmiids.lib

Confira também

IAMTimelineObj Interface

Códigos de erro e êxito