Поделиться через


Включение впускных каналов в Writer

Функция, связанная с этой страницей, Windows Media Format SDK 11, является функцией предыдущих версий. На смену им пришли модуль чтения источника и модуль записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения источника и средство записи приемника вместо пакета SDK для Windows Media 11, по возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Приемники записи являются отдельными объектами записи и должны быть добавлены в модуль записи для использования. При записи в файл можно просто вызвать IWMWriter::SetOutputFilename, что автоматически настроит приемник файлов. В противном случае, чтобы добавить приемник в модуль записи, вызовите метод IWMWriterAdvanced::AddSink. AddSink требует указателя на интерфейс приемника IWMWriterSink.

После завершения работы с приемником необходимо закрыть его, вызвав соответствующий метод в зависимости от типа приемника, а затем удалить его из средства записи, вызвав IWMWriterAdvanced::RemoveSink.

В следующем примере кода показано, как создать приемник файла записи и добавить его в модуль записи. Дополнительные сведения об использовании этого кода см. в разделе Использование примеров кода.

HRESULT AddFileSink(IWMWriterFileSink** ppFileSink, IWMWriter* pWriter)
{
    HRESULT hr = S_OK;
    IWMWriterSink*     pSinkBase       = NULL;
    IWMWriterAdvanced* pWriterAdvanced = NULL;

    hr = CreateWriterFileSink(ppFileSink);
    GOTO_EXIT_IF_FAILED(hr);

    hr = *ppFileSink->QueryInterface(IID_IWMWriterSink, 
                                     (void**) &pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriter->QueryInterface(IID_IWMWriterAdvanced,
                                 (void**) &pWriterAdvanced);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriterAdvanced->AddSink(pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

Exit:
    SAFE_RELEASE(pSinkBase);
    SAFE_RELEASE(pWriterAdvanced);
    return hr;
}

получение сообщений об ошибках из приемника

Интерфейс IWMWriterAdvanced

работа с записывающими средствами