Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает объект активации для приемника потоковой передачи ASF.
Приемник потоковой передачи ASF позволяет приложению записывать пакеты потоковой передачи Advanced Systems Format (ASF) в поток байтов HTTP.
Синтаксис
HRESULT MFCreateASFStreamingMediaSink(
IMFByteStream *pIByteStream,
IMFMediaSink **ppIMediaSink
);
Параметры
pIByteStream
Указатель на объект потока байтов, в котором приемник мультимедиа ASF записывает потоковое содержимое.
ppIMediaSink
Получает указатель на интерфейс IMFMediaSink объекта приемника потоковой передачи ASF. Чтобы создать приемник мультимедиа, приложение должно вызвать IMFActivate::ActivateObject в полученном указателе. Вызывающий объект должен освободить указатель интерфейса.
Возвращаемое значение
Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Чтобы создать приемник потоковой передачи ASF в другом процессе, вызовите MFCreateASFStreamingMediaSinkActivate.
Приложение может получить указатель на объект ASF ContentInfo , вызвав IUnknown::QueryInterface для объекта приемника мультимедиа, полученного в параметре ppIMediaSink . Объект ContentInfo используется для задания параметров конфигурации кодировщика, предоставления свойств потока, предоставляемых профилем ASF, и добавления сведений о метаданных. Эти параметры конфигурации заполняют различные объекты заголовков ASF закодированного ФАЙЛА ASF. Дополнительные сведения см. в разделе
Задание свойств в объекте ContentInfo.
Примеры
В следующем примере кода показано, как создать приемник мультимедиа для источника ASF. В этом примере параметры конфигурации потока копируются из источника в объект ContentInfo, представляющий объект заголовка ASF выходного файла.
// Creates an an instance of the ASF streaming sink.
HRESULT CreateASFStreamingSink(
IMFMediaSource *pSource,
IMFByteStream *pOutputByteStream,
IMFMediaSink **ppMediaSink
)
{
IMFPresentationDescriptor* pSourcePD = NULL;
IMFASFProfile* pASFProfile = NULL;;
IMFMediaSink* pMediaSink = NULL;
IMFASFContentInfo* pASFContentInfo = NULL;
// Create the streaming media sink for the ASF file
HRESULT hr = MFCreateASFStreamingMediaSink(pOutputByteStream, &pMediaSink);
if (FAILED(hr))
{
goto done;
}
//
// Transfer the ASF profile from the media source to the sink.
//
// Get the presentation descriptor from the source.
hr = pSource->CreatePresentationDescriptor(&pSourcePD);
if (FAILED(hr))
{
goto done;
}
// Convert the presentation descriptor to an ASF profile.
hr = MFCreateASFProfileFromPresentationDescriptor(pSourcePD, &pASFProfile);
if (FAILED(hr))
{
goto done;
}
hr = pMediaSink->QueryInterface(IID_PPV_ARGS(&pASFContentInfo));
if (FAILED(hr))
{
goto done;
}
// Set the profile on the sink.
hr = pASFContentInfo->SetProfile(pASFProfile);
if (FAILED(hr))
{
goto done;
}
*ppMediaSink = pMediaSink;
(*ppMediaSink)->AddRef();
done:
SafeRelease(&pSourcePD);
SafeRelease(&pASFProfile);
SafeRelease(&pASFContentInfo);
SafeRelease(&pMediaSink);
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | wmcontainer.h |
Библиотека | Mf.lib |
DLL | Mf.dll |