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.
под названием 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