Использование пользовательских приемников
[Функция, связанная с этой страницей, пакет SDK для Windows Media 11, является устаревшей функцией. Он был заменён на Чтец источника и Писатель приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Если у вас есть особые потребности в написании, вы можете создать собственные приемники записи. Записывающий модуль поддерживает одностороннюю связь с раковиной, выполняя вызовы методов IWMWriterSink. Чтобы создать собственный приемник, реализуйте интерфейс IWMWriterSink в классе в приложении. Этот процесс очень похож на реализацию любого другого интерфейса обратного вызова, используемого объектами пакета SDK для формата Windows Media. Дополнительные сведения об обратных вызовах см. в Использование методов обратного вызова.
Буфер, полученный в IWMWriterSink::OnHeader, должен быть записан в начало файла, а все буферы, полученные в OnDataUnit, должны быть записаны последовательно. OnHeader будет вызываться в начале, но может вызываться в другое время и, если это так, следует, если это возможно, перезаписать исходный заголовок. Если приложение не может сделать это по какой-то причине, просто игнорируйте последующие вызовы OnHeader.
Пользовательский синк должен сообщить о своем состоянии вашему приложению для записи, вызывая метод обратного вызова IWMStatusCallback::OnStatus. Если вы реализуете приемник в виде COM-объекта, вам может потребоваться открыть интерфейс IWMRegisterCallback. Однако вы можете передать адрес обратного вызова OnStatus приемнику и задать контекст любым желаемым образом.
Связанные разделы