Método ICaptureGraphBuilder2::SetOutputFileName (strmif.h)
[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.]
O SetOutputFileName
método cria a seção de gravação de arquivo do grafo de filtro.
Sintaxe
HRESULT SetOutputFileName(
[in] const GUID *pType,
[in] LPCOLESTR lpstrFile,
[out] IBaseFilter **ppf,
[out] IFileSinkFilter **ppSink
);
Parâmetros
[in] pType
Ponteiro para um GUID que representa o subtipo de mídia da saída ou o CLSID (identificador de classe) de um filtro multiplexer ou filtro de gravador de arquivos. Se você especificar um subtipo de mídia, ele deverá ser um dos seguintes:
Valor | Descrição |
---|---|
MEDIASUBTYPE_Avi | Audio-Video Interleaved (AVI) |
MEDIASUBTYPE_Asf | Advanced Systems Format (ASF) |
[in] lpstrFile
Ponteiro para uma cadeia de caracteres largos que contém o nome do arquivo de saída.
[out] ppf
Endereço de um ponteiro que recebe a interface IBaseFilter do multiplexer.
[out] ppSink
Endereço de um ponteiro que recebe a interface IFileSinkFilter do gravador de arquivos. Pode ser NULL.
Retornar valor
Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
Falha. |
|
Argumento de ponteiro NULL. |
Comentários
Esse método cria um filtro multiplexer com base no valor do parâmetro pType . Para a AVI, ele cria o Filtro AVI Mux. Para o ASF, ele cria o Gravador ASF do WM. Para outros valores, ele cria o filtro identificado pelo CLSID. Ele adiciona o multiplexer ao grafo de filtro e retorna um ponteiro para sua interface IBaseFilter no parâmetro ppf .
Se o multiplexer der suporte à interface IFileSinkFilter , o método chamará IFileSinkFilter::SetFileName para definir o nome do arquivo de saída, usando o valor fornecido no parâmetro lpwstrFile . Se o multiplexer não der suporte à interface IFileSinkFilter , o método adicionará o Filtro de Gravador de Arquivo ao grafo de filtro, conectará o multiplexer ao gravador de arquivos e usará a interface IFileSinkFilter do gravador de arquivos para chamar SetFileName. Se o parâmetro pSink não for NULL, ele receberá um ponteiro para a interface IFileSinkFilter .
Você pode usar o ponteiro para o filtro multiplexer, retornado no parâmetro ppf , como o parâmetro pSink no método ICaptureGraphBuilder2::RenderStream .
Para filtros multiplexer personalizados, o método falhará se o filtro não oferecer suporte a uma conexão em seu pino de saída antes que seus pinos de entrada sejam conectados. Por exemplo, o Exemplo de Filtro WavDest incluído no SDK tem essa limitação.
Se o método for bem-sucedido, a interface IBaseFilter retornada no parâmetro ppf terá uma contagem de referência pendente. Se o método for bem-sucedido e pSink não for NULL, a interface IFileSinkFilter também terá uma contagem de referência pendente. Certifique-se de liberar ambas as interfaces quando terminar de usá-las.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |