Partilhar via


Usando coletores personalizados

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize Source Reader e Sink Writer, em vez do SDK do Windows Media Format 11, sempre que 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 tiver uma necessidade específica de escrita, pode criar os seus próprios mecanismos de escrita. O escritor mantém uma comunicação unidirecional com um coletor fazendo chamadas para os métodos de IWMWriterSink. Para criar seu próprio coletor, implemente o interface de 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 Windows Media Format. 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 também pode ser chamado em outros momentos e, se for, você deve, se possível, substituir o cabeçalho original. Se o seu aplicativo não for capaz de fazer isso por algum motivo, então, simplesmente ignore as chamadas subsequentes OnHeader.

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

Trabalhando com o Writer Sinks