Windows Media Player Rendering Plug-ins

 
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры
Предыдущая тема :: Следующая тема  
Автор Сообщение
Wanderer
Новенький


Зарегистрирован: 23.04.2007
Сообщения: 4

СообщениеДобавлено: Пн Апр 23, 2007 12:36 am    Заголовок сообщения: Windows Media Player Rendering Plug-ins Ответить с цитатой

Создал на основе темплейта, поставляемого с Windows Media Player 10 SDK проект, при регистрации оного указываю
Код:
DMO_PARTIAL_MEDIATYPE mt = { 0 };
mt.type = MEDIATYPE_Video;
mt.subtype = WMMEDIASUBTYPE_WMV2;

регистрирую, и пытаюсь воспроизвести поставляемый с сдк seattle.wmv.
Плеер плагином пользоваться даже и не думает, в чем может быть загвоздка?

П.С.: проверял для WMP9 и WMP11.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Валентин Вовк
Участник


Зарегистрирован: 30.10.2006
Сообщения: 21

СообщениеДобавлено: Вт Апр 24, 2007 9:25 pm    Заголовок сообщения: Ответить с цитатой

Интересно, не видел никогда таких шаблонов никогда.
Если не секрет, что получается на выходе?
Могу только предположить, что это *.ax или *.dll; но нужно будет зарегистрировать через regsvr32. Возможно, это DMO? Или ошибаюсь?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Wanderer
Новенький


Зарегистрирован: 23.04.2007
Сообщения: 4

СообщениеДобавлено: Ср Апр 25, 2007 10:30 am    Заголовок сообщения: Ответить с цитатой

речь идет о http://www.windowsfordevices.com/products/PD3786260177.html

после установки sdk кроме прочих прелестей имеем студийные темплейты, для 6й студии и для 2003(выше не проверял, но наверное тоже есть)
На выходе получается таки dll, которая таки содержит
STDAPI DllRegisterServer(void) Smile и про regsvr32 както сразу догадался,
теплейт даже предусматривает постбилдстеп такой. Насчет DMO - таки да это DMO.

Цитата:
Windows Media Player rendering plug-ins decode (if necessary) and render custom data contained in a Windows Media format stream. Rendering plug-ins are DirectX Media Objects (DMO) that connect to the Player through COM interfaces.


Собственно регистрация выглядит вот так:
Код:
CComPtr<IWMPMediaPluginRegistrar> spRegistrar;
    HRESULT hr;

    // Create the registration object
    hr = spRegistrar.CoCreateInstance(CLSID_WMPMediaPluginRegistrar, NULL, CLSCTX_INPROC_SERVER);
    if ( FAILED( hr ) )
    {
        return hr;
    }
   
    // Load friendly name and description strings
    CComBSTR    bstrFriendlyName;
    CComBSTR    bstrDescription;

    bstrFriendlyName.LoadString(IDS_FRIENDLYNAME);
    bstrDescription.LoadString(IDS_DESCRIPTION);

    // Describe the type of data handled by the plug-in
    DMO_PARTIAL_MEDIATYPE mt = { 0 };
   mt.type = MEDIATYPE_WMPPLUGIN1;
   mt.subtype = MEDIASUBTYPE_NULL;
//;

    // Register the plug-in with WMP
    hr = spRegistrar->WMPRegisterPlayerPlugin(
                    bstrFriendlyName,   // friendly name (for menus, etc)
                    bstrDescription,    // description (for Tools->Options->Plug-ins)
                    NULL,               // path to app that uninstalls the plug-in
                    1,                  // DirectShow priority for this plug-in
                    WMP_PLUGINTYPE_RENDERING, // Plug-in type
                    CLSID_Wmpplugin1,// Class ID of plug-in
                    1,                  // No. media types supported by plug-in
                    &mt);               // Array of media types supported by plug-in

    if ( FAILED( hr ) )
    {
        return hr;
    }

    // registers object
    return _Module.RegisterServer();

Причем для проигрывания файла поставляемого вместе с сдк (rendering.asf) необходимо указать
DEFINE_GUID(MEDIATYPE_WMPPLUGIN1, 0xc1ccdf59, 0x6924, 0x4b96, 0x82, 0x47, 0xdb, 0xb0, 0xea, 0xe5, 0xb6, 0x7);
Это совсем не секрет, информация доступна из справочного материала сдк.

Если придебажится к медиаплееру после вышеописанных магических действий и поставить брекпоинт в конструкторе плагина, например, можно наблюдать, что он (конструктор) таки вызывается.
Если же совершить магические действия описанные в первом посте этой темы - то конструктор наоборот не вызывается - из чего я зделал вывод, что плеер плагином пользоваться отказывается. Вопрос остается открытым - почему?((
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры Часовой пояс: GMT + 4
Страница 1 из 1
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Рейтинг@Mail.ru