RU

QSP под Android

Nex Moderator 18.10.2010 08:34 256 comments 189491 views

Взялся недавно за портирование QSP на андроид.

Учитывая, что под андроид нельзя “напрямую” портировать написанный с использованием wxWidgets плеер, задача оказалась довольно сложной.

Разобравшись с доступными средствами, определился, как именно сделать порт, а именно:

  1. Библиотека QSP собирается в NDK.
  2. Для библиотеки делается “биндинг под ANDROID”.
  3. Для доступа к интерфейсу библиотеки через jni пишется специальный класс-прослойка.
  4. GUI пишется на Java.

Страница на Маркете: Quest Player

Edited at 15.06.2011 05:51 (14 years ago)

Плеер научился показывать картинки в тексте и в отдельном окне.

Если действие длиннее двух строк его приходится скроллировать. Не очень удобно, а когда еще куча места на экране и непонятно зачем.

Три дороги: при попытке открытия вылетает

11-24 23:20:02.682: ERROR/AndroidRuntime(711): FATAL EXCEPTION: main
11-24 23:20:02.682: ERROR/AndroidRuntime(711): java.lang.NullPointerException
11-24 23:20:02.682: ERROR/AndroidRuntime(711):     at com.qsp.player.QspImageGetter.getDrawable(QspImageGetter.java:28)
11-24 23:20:02.682: ERROR/AndroidRuntime(711):     at android.text.HtmlToSpannedConverter.startImg(Html.java:605)

Пиратская одиссея: не смог запустить со звуком. Вешает телефон полностью. Без звуковых файлов - все ок.

Piligrim:

Если действие длиннее двух строк его приходится скроллировать. Не очень удобно, а когда еще куча места на экране и непонятно зачем.

У меня “раскладка” (layout) такая:
<ScrollView>
<TextView основное описание>
<ListView действия>
</ScrollView>

Есть проблема с использованием ListView в ScrollView. В Андроиде вообще “нельзя” использовать ListView внутри ScrollView, т.к. ListView сам по себе должен содержать скроллер. Как следствие, при вставке его в ScrollView он “сворачивается”. Чтобы его развернуть, используется хак, который не всегда правильно выставляет размер, иногда получается “короче” примерно на полстроки, стремно, но терпимо.

Как и очень многое в этом плеере, хак этот временный :)

По-хорошему переделать нужно будет “под винду”, с перетаскиваемым разделителем между областью описания и областью действий, и чтобы описание и действия скроллились независимо друг от друга.

Но это, увы, позже. Сейчас есть более приоритетные задачи.

Поднял репозиторий - http://code.google.com/p/qsp-android-player/

Починил баги, которые мешали играть в “Три дороги” и “Пиратскую одиссею”.

Исправил баг, из-за которого плеер вылетал при каждом четном перезапуске.

Новая версия не устанавливается.
UPD: Собранная из исходников устанавливается и нормально работает. Из шапки - ругается на сертификат одного из файлов папки res.

Edited at 02.12.2010 05:18 (15 years ago)

Обновил файл. Продолжает ругаться?

Не устанавливается. Когда буду дома посмотрю причину.
Чем могу помочь в части программирования? Какую часть лучше смотреть?

Я могу задания дать, на выбор (можешь и все по очереди выполнять, если у тебя время есть)
1. сделать иконки(исходники лого то ли векторного, то ли просто в большом разрешении вроде я Байту передавал, если у него нет, у себя пошукаю)
2. сделать переключение вкладок жестами
3. сделать уведомления об изменениях в доп. описании и инвентаре - пожалуй, лучше всего подойдет если будут соотв. анимироваться или меняться цвет(или иконка) заголовка вкладки.
4. собственно разобраться, почему не устанавливается прикрепленное в шапке приложение(создаю через меню Android tools/Export Unsigned Package)

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

По пункту 4:
DDMS ругается на

12-03 12:55:58.862: ERROR/PackageParser(125): Package com.qsp.player has no certificates at entry res/layout/act_item.xml; ignoring!

а Подписывание приложений предполагает, что все приложения должны быть подписаны. Нужно использовать “Export signed application”

Nex:

для обработки всплывающего меню и окошка с вводом текста.

MSG должно работать по тому же принципу, т.е. колбэк не должен завершаться пока не закрыли окошко.

Спасибо за инфу, разберусь. Мне кажется, что с подписыванием это не связано.
Я просто не хочу морочиться с подписыванием, пока не готова хотя бы полноценная альфа-версия.

MSG должно работать по тому же принципу, т.е. колбэк не должен завершаться пока не закрыли окошко.

Понятно. Переделаем, попозже.

С подписыванием не нужно морочиться, Оно выполняется двумя кликами.
Дайте графику на gmail, попрошу жену заняться. Пожелания по иконкам вкладок будут?

Log in or Register to post comments.