Compartilhar via


Adicionando uma origem

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]

[Não há suporte para essa API e pode ser alterada ou indisponível no futuro.]

Crie um objeto de origem da mesma forma que você cria outros objetos linha do tempo. No entanto, antes de inseri-lo no linha do tempo, você deve especificar pelo menos as propriedades a seguir na origem.

No exemplo a seguir, o clipe de origem inicia quatro segundos no arquivo. A duração da mídia é de 10 segundos, o dobro do comprimento do linha do tempo duração, o que significa que a origem será reproduzida a duas vezes a velocidade normal. A constante UNITS é definida como 100000000 (10^7) e é igual a um segundo.

pSourceObj->SetStartStop(0, 50000000)
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.avi"), 15);
pSource->SetMediaName(bstrFile); 
SysFreeString(bstrFile);
pSource->SetMediaTimes(40000000, 140000000);

Observação

Atualmente, o DES não pode renderizar simultaneamente mais de 75 fontes que foram compactadas com codecs do VCM (Gerenciador de Compactação de Vídeo). Além disso, se o projeto como um todo contiver mais de 75 dessas fontes, você deverá usar a reconexão dinâmica ou o DES não poderá visualizar o projeto. Para obter mais informações, consulte IRenderEngine::SetDynamicReconnectLevel.

 

Para obter mais informações sobre fontes, consulte Trabalhando com fontes.

Construindo uma linha do tempo