Compartilhar via


Usando coletores personalizados

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador do Coletor em vez do SDK do Windows Media Format 11, 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.]

Se você tiver uma necessidade especial de escrita, poderá criar seus próprios coletores de gravador. O gravador mantém a comunicação unidirecional com um coletor fazendo chamadas para os métodos de IWMWriterSink. Para criar seu próprio coletor, implemente a interface IWMWriterSink em uma classe em seu aplicativo. Esse processo é muito semelhante à implementação de qualquer outra interface de retorno de chamada usada pelos objetos do SDK do Formato de Mídia do Windows. Para obter mais informações sobre retornos de chamada, consulte Usando os métodos de retorno de chamada.

O buffer recebido em IWMWriterSink::OnHeader deve ser gravado no início do arquivo e todos os buffers recebidos em OnDataUnit devem ser gravados sequencialmente. OnHeader será chamado no início, mas pode ser chamado em outros momentos também e, se for, você deverá, se possível, substituir o cabeçalho original. Se o aplicativo não for capaz de fazer isso por algum motivo, basta ignorar as chamadas OnHeader subsequentes.

O coletor personalizado deve comunicar sua status ao aplicativo de escrita fazendo chamadas para o método de retorno de chamada IWMStatusCallback::OnStatus. Se você implementar o coletor como um objeto COM, talvez queira expor a interface IWMRegisterCallback . No entanto, você pode passar o endereço do retorno de chamada onStatus para o coletor e definir um contexto da maneira que desejar.

Trabalhando com coletores de gravador