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.
- Os horários de início e parada em relação ao linha do tempo. Chame o método IAMTimelineObj::SetStartStop .
- O arquivo de mídia a ser usado como fonte. Chame o método IAMTimelineSrc::SetMediaName com uma cadeia de caracteres largos que representa o nome do arquivo.
- Os horários de início e parada da mídia, que são relativos ao arquivo original. Chame o método IAMTimelineSrc::SetMediaTimes . Para obter mais informações sobre os tempos de mídia, consulte Tempo nos Serviços de Edição do DirectShow.
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.
Tópicos relacionados