Definindo propriedades em códigos-fonte
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize 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.]
[Esta API não é suportada e pode ser alterada ou indisponível no futuro.]
Quando você cria um novo objeto de origem, há algumas propriedades que você precisa definir e outras que você pode definir opcionalmente. Você deve definir as seguintes propriedades.
- Os horários de início e parada, em relação ao resto da linha do tempo. Chame o método IAMTimelineObj::SetStartStop. Não defina tempos de sobreposição em objetos de origem dentro da mesma faixa, ou isso causará um comportamento indefinido.
- O arquivo de mídia a ser usado como clipe de origem. Chame o IAMTimelineSrc::SetMediaName.
- Os horários de início e parada da mídia, em relação ao arquivo de origem original. Chame o método IAMTimelineSrc::SetMediaTimes. Exceção: Se a fonte for uma imagem fixa, não especifique os tempos de mídia. Para obter mais informações sobre tempos de mídia, consulte Tempo no DirectShow Editing Services.
Um objeto de origem herda seu tipo de mídia do grupo pai, portanto, não é necessário especificar um tipo de mídia.
As propriedades opcionais incluem o seguinte:
- O modo de alongamento. O modo stretch especifica como o Microsoft® DirectShow® Editing Services (DES) processa uma fonte cujo tamanho não corresponde às dimensões de saída. Por padrão, o DES estende uma imagem sem preservar a proporção. Como alternativa, o DES pode cortar uma imagem ou criar uma caixa de correio. Chame o método IAMTimelineSrc::SetStretchMode para especificar o modo de alongamento.
- A duração do arquivo de origem. Se você definir essa propriedade antes de definir os tempos de mídia, o DES validará o tempo de parada de mídia e truncará o tempo de parada se exceder a duração do arquivo. Isso pode ajudar a evitar erros de renderização mais tarde. Você pode obter a duração do arquivo usando o detetor de mídia, conforme descrito em Usando o Media Detetor. Chame o método de IAMTimelineSrc::SetMediaLength para especificar a duração do arquivo.
- O número do fluxo. Por padrão, um objeto de origem usa o primeiro fluxo no arquivo que corresponde ao tipo de mídia do grupo pai. Se um arquivo contiver dois ou mais fluxos do mesmo tipo de mídia, selecione qual fluxo usar chamando IAMTimelineSrc::SetStreamNumber. Você pode usar o detetor de mídia para encontrar o número de fluxos.
Tópicos relacionados