Page 1 of 1

Не работает большинство примеро

Posted: Tue Aug 26, 2008 11:56 am
by movaxbx777
Собрал wx_mono.lib и пытаюсь посмотреть сэмплы, работают только самые простые примеры. С остальными практически одна и таже ошибка "Could not create media control. Do you want to stop the program?"

Ошибка возникает вот здесь. Стандартный семпл, я ничего не менял. (похожие ошибки возникают и с другими примерами)

Code: Select all

bool bOK = m_mediactrl->Create(this, wxID_MEDIACTRL, wxEmptyString,
                                    wxDefaultPosition, wxDefaultSize, 0,
                                   szBackend);
В чем может быть проблема?

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 12:55 pm
by tan
movaxbx777 wrote:Собрал wx_mono.lib и пытаюсь посмотреть сэмплы, работают только самые простые примеры. С остальными практически одна и таже ошибка "Could not create media control. Do you want to stop the program?"

Ошибка возникает вот здесь. Стандартный семпл, я ничего не менял. (похожие ошибки возникают и с другими примерами)

Code: Select all

bool bOK = m_mediactrl->Create(this, wxID_MEDIACTRL, wxEmptyString,
                                    wxDefaultPosition, wxDefaultSize, 0,
                                   szBackend);
В чем может быть проблема?
Че то я не понял насчет "остальных" примеров. Реально wxMediaCtrl используется только в одном - mediaplayer. Как может возникать эта "одна и та же ошибка" в других сэмплах, хоть убей - не пойму :)

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 1:21 pm
by movaxbx777
Че то я не понял насчет "остальных" примеров. Реально wxMediaCtrl используется только в одном - mediaplayer. Как может возникать эта "одна и та же ошибка" в других сэмплах, хоть убей - не пойму :)
Я сказал "похожие". Т.к. на PC у меня нет вообще проблем, то я предположил, что эти ошибки могут быть связаны.

В других примерах другие проблемы, например в примере Display: "Can't load symbol from unloaded library"

много ошибок вида "error in SomeFunc(). Do you want to stop application?"

В общем, для меня сейчас важен только media player. Можно это как-то пофиксить? подскажите хоть направление куда копать

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 1:27 pm
by tan
movaxbx777 wrote: Т.к. на PC у меня нет вообще проблем, то я предположил, что эти ошибки могут быть связаны.
Все равно не понял - на РС проблем нет, а где есть? Из поста ничего не понятно.

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 1:29 pm
by movaxbx777
Все равно не понял - на РС проблем нет, а где есть? Из поста ничего не понятно.
Извиняюсь, тема обрезана :( проблемы при запуске на pocket PC. А PC - это настольный комп.

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 2:55 pm
by tan
movaxbx777 wrote:проблемы при запуске на pocket PC
Ok, теперь понял :) Но, боюсь, помочь не смогу (по крайней мере быстро). Никогда не юзал wxMediaCtrl под WinCE. Если будет время, может гляну :)
Да, а не работает под эмулятором или на реальном покете?

Re: Не работает большинство приме

Posted: Tue Aug 26, 2008 3:04 pm
by movaxbx777
Да, а не работает под эмулятором или на реальном покете?
Везде не работает.

Posted: Tue Aug 26, 2008 3:55 pm
by T-Rex
Так, давай по порядку. Список <имя примера> - <текст ошибки> давай.
Ну а так навскидку, пробовал добавлять ресурсный файл и в нем #include <wx/msw/wx.rc> ?

Posted: Wed Aug 27, 2008 6:26 am
by movaxbx777
Ок. Итак.
Задача: написать media player, который может проигрывать mp3, ogg, wma, wav. Плеер должен работать в windows ce (only core licence). Использовать можно только LGPL библиотеки (или с похожей лицензией).
Что делал: Решил посмотреть сэмпл от wxWidgets (2.8.8) под названием mediaplayer. Библиотеку собрал в VS2008 под Pocket PC 2003 SDK (пока нет реального девайса с windows ce). Библиотека собралась не без проблем, сначала выругалась на отсутствие функции VkScanKey, для которой я написал заглушку. Потом сэмпл не захотел линковаться с wxwidgets ругаясь на что-то связанное с mediaBanckend. Поигравшись флажками и пересобрав библиотеку, получилось избавиться от этих ошибок, но появились другие неразрешенный ссылки, пришлось написать для них заглушки:

Code: Select all

bool __cdecl wxConvertVariantToOle(class wxVariant const &,struct tagVARIANT &)
{
	return false;
}

bool __cdecl wxConvertOleToVariant(struct tagVARIANT const &,class wxVariant &)
{
	return false;
}
В этих функциях ставил брек поинты - программа туда не попадает.
собственно ошибка возникает здесь:

Code: Select all

    bool bOK = m_mediactrl->Create(this, wxID_MEDIACTRL, wxEmptyString,
                                    wxDefaultPosition, wxDefaultSize, 0,

                                   szBackend);

wxASSERT_MSG(bOK, wxT("Could not create media control!"));
т.е. функция Create возвращает фолс, так как не находит зарегестрированный класс в hash_map (может я чего не так понял?!). Одннако, класс wxMediaBackend там регистрируется, может это не то?! Если вместо szBackend передать "wxMediaBackend", то происходит просто крэш.

В чем может быть проблема?

Posted: Wed Aug 27, 2008 10:21 am
by T-Rex
Так.. ну а чего ж ты в исходник не смотришь? Я вот щаз открыл и гляжу, есть несколько медиа-бэкендов, из них под винду подходит только вроде который для WMP10 (но я чегой-то сомневаюсь что для WinCE оно будет работать, ну не важно, еще можно поковырять что там в GStreamer-бэкенде.. возможно есть шанс его под CE скомпилить, но ладно, не об этом сейчас речь..

Code: Select all

#if wxUSE_MEDIACTRL && wxUSE_ACTIVEX
Вот такое я вижу в сорцах нашего медиа-бэкенда... кажися WM не поддерживает активиксы.. как бы там ни было, иду в Go to declaration:

Code: Select all

/* check that MSW-specific options are defined too */
#ifndef wxUSE_ACTIVEX
#    ifdef wxABORT_ON_CONFIG_ERROR
#        error "wxUSE_ACTIVEX must be defined."
#    else
#        define wxUSE_ACTIVEX 0
#    endif
#endif /* !defined(wxUSE_ACTIVEX) */
вот чо вижу, поэтому медиа-бэкенд для WMP не компилится.. иду в setup.h

Code: Select all

/*
   un/redefine the options which we can't compile (after checking that they're
   defined
 */
#ifdef __WINE__
    /* apparently it doesn't compile under Wine, remove it/when it does */
    #if wxUSE_ACTIVEX
        #undef wxUSE_ACTIVEX
        #define wxUSE_ACTIVEX 0
    #endif // wxUSE_ACTIVEX
#endif // __WINE__


/* check settings consistency for MSW-specific ones */
#if !wxUSE_VARIANT
#   if wxUSE_ACTIVEX
#       ifdef wxABORT_ON_CONFIG_ERROR
#           error "wxActiveXContainer requires wxVariant"
#       else
#           undef wxUSE_ACTIVEX
#           define wxUSE_ACTIVEX 0
#       endif
#   endif

#   if wxUSE_OLE_AUTOMATION
#       ifdef wxABORT_ON_CONFIG_ERROR
#           error "wxAutomationObject requires wxVariant"
#       else
#           undef wxUSE_OLE_AUTOMATION
#           define wxUSE_OLE_AUTOMATION 0
#       endif
#   endif
#endif /* !wxUSE_VARIANT */
Ну и собсно вот, кажися оно и не должно работать.. столько всего не юзается в wxWinCE.. думаю можно посмотреть на родное API по воспроизведению видео.

Posted: Wed Aug 27, 2008 10:32 am
by movaxbx777
С родными API тоже не все так просто. Ладно, посмотрю в сторону SDL, уже есть первый работающий пример, правда не без косяков, но все же... Спасибо за помощь!

Posted: Wed Aug 27, 2008 11:55 am
by T-Rex
Если не жалко, дай пример на SDL, интересно посмотреть?

Posted: Wed Aug 27, 2008 12:44 pm
by movaxbx777
T-Rex wrote:Если не жалко, дай пример на SDL, интересно посмотреть?
Собственно вот он
http://www.gmdsoft.de/haumann/classes/Sound/
Там сделано правда через Ж, мр3-шка сначала полностью декодируется, а потом проигрывается, при чем декодируется около 2 минут файл, который должен играть 38 сек. Вот сейчас пытаюсь пофиксить.
Если нужны все исходники с проектиными файлами, дай мыло - вышлю.

Posted: Wed Aug 27, 2008 2:12 pm
by T-Rex
t-rex [Yarrr!!!] mail.zp.ua