Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 04.01.2007, 16:17   #1
@lex
Оператор ЭВМ
 
Регистрация: 31.08.2006
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Is MIDlet Paused :dontknow: ?

Привет всем!
Хочу спросить по поводу функции IsMidletPaused. Написал такой код, который прогоняется перед каждой перерисовкой экрана:

if IsMidletPaused then
begin
while IsMidletPaused do delay(300); //Ждём пока на паузе
if (is_playing=1) then close_player; //Затем выполняем несколько действий
plp:=Playing;
Playing:=0;
Paused:=false;
end;

В итоге ничего не срабатывает, что вобщем-то очевидно ведь если Мидлет на паузе, то как он может работать?
Если ли способ отловить событие постановки и снятия с паузы?
Прога - плэер, а ему как ничему другому нужно знать, когда его заткнули и включили мелодию звонка.
Заранее всем спасибо.
(Offline)
 
Ответить с цитированием
Старый 04.01.2007, 17:32   #2
Тренсфер
 
Сообщений: n/a
Re: Is MIDlet Paused :dontknow: ?

Так ведь IsMidletPaused это логическая функция которая принимает значение истина или ложь. Например попробуй этот код:
begin
repeat
if IsMidletPaused=true then begin
setcolor(255,255,0);
FillRect(0, 0, GetWidth, GetHeight);
Repaint;
end;
until 1=2;
end.
Если поставишь на паузу экран станет жёлтым.
Твой код можно также изменить:
if IsMidletPaused=true then begin
while IsMidletPaused=true do begin
delay(300); //Ждём пока на паузе
if (is_playing=1) then close_player; //Затем выполняем несколько действий
plp:=Playing;
Playing:=0;
Paused:=false;
end;
end;
 
Ответить с цитированием
Старый 04.01.2007, 18:06   #3
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

На всякий случай: не обязательно в операторе IF писать IsMidletPaused=true, у @lex-а тоже правильно.
Как я понимаю, для плейера надо обнаружить приостановку мидлета и поставить плейер тоже на паузу, а выход из паузы - уж пусть пользователь чего-то там нажмет Т.е. достаточно чего-то такого в основном цикле рисования на дисплее:
 
if IsMidletPaused and (not InPause) then begin
   StopPlayer;
   InPause := true;
end;
Далее (и перед этим) используем InPause для отрисовки того, что нужно при паузе и без нее и т.п., по команде меню (например) делаем InPause := false. В начале прогри, естественно, InPause := false.
(Offline)
 
Ответить с цитированием
Старый 05.01.2007, 20:20   #4
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Если мидлет ставится на паузу каким либо телефонным ивентом вроде входящего звонка, он автоматически останавливает свое выполнение... Для задания паузы программо функциям IsMidletPaused не нужна...
(Offline)
 
Ответить с цитированием
Старый 05.01.2007, 20:29   #5
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

А тогда зачем эта функция, если она как бы никогда true не вернет (если не пауза - по естественной причине, а если мидлет остановлен - то по причине того, что функция просто не выполнится)? Думаю, что при приеме звонка мидлет продолжает работать, но в фоне, т.е. без отрисовки на экране. Чтобы за время разговора ничего там не "убежало" и нужна эта функция.
(Offline)
 
Ответить с цитированием
Старый 06.01.2007, 00:42   #6
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Такое возможно только если аппарат поддерживае резидентные мидлеты... А это встречается далеко не всегда...
(Offline)
 
Ответить с цитированием
Старый 06.01.2007, 01:12   #7
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Тогда каким образом возможно отловить isMidletPaused=true??? Оно ведь все-таки отлавливается!
(Offline)
 
Ответить с цитированием
Старый 07.01.2007, 11:25   #8
@lex
Оператор ЭВМ
 
Регистрация: 31.08.2006
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Is MIDlet Paused :dontknow: ?

В любом случае код, описанный мной прогоняется постоянно при работающем мидлете. Попробовал позвонить себе с другого тела во время проигрывания музыки и плэер этого не заметил.
Вобще моя библиотека проигрывания написана на Java, она помимо всего прочего может устанавливать громкость звучания и приостанавливать воспроизведения. Но после выхода из паузы звучание не возобновляется, но плэер говорит, что он что-то воспроизводит. Если при этом поставить его на паузу, а затем опять снять, то он начнёт нормальное проигрывание с начала трека, а если попробовать сделать что-нибудь другое, например изменить громкость, то мидлет повисает.
Короче наверное эта функция не для всех мобил, а жаль...
(Offline)
 
Ответить с цитированием
Старый 07.01.2007, 12:22   #9
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

по логике вещей IsMidletPaused должна быть для всех мобил, т.к. она напрямую связана с соответствующим методом Java MDIP. неужели тот код, который я приводил ранее, не замечает пришедшего звонка? Как только обнаружил его (звонок) - ставь плейер на паузу, тогда и будет все ок. Я вот в своей мухобойке именно так отлавливаю звонки и прочее - работает...
(Offline)
 
Ответить с цитированием
Старый 07.01.2007, 14:20   #10
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Is MIDlet Paused :dontknow: ?

IsMidletPaused просто возвращает значение переменной, которая в startApp() выставляется в False, а в pauseApp() в True.
Например на мотороле при приостановке мидлета вызывается pauseApp(), а при запуске в фоновом режиме startApp()
Мидлет в приостановленном состоянии не может что-нибудь выполнять.
(Offline)
 
Ответить с цитированием
Старый 07.01.2007, 15:18   #11
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Не понимаю!!!
Поясните процесс обнаружения паузы примерно так: основной цикл крутится, опрашивает IsMidletPaused, тут приходит звонок и Java-машина.... дальше продолжите вплоть до момента, когда мидлет снова запускается
(Offline)
 
Ответить с цитированием
Старый 08.01.2007, 13:14   #12
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Is MIDlet Paused :dontknow: ?

приходит звонок. вызывается pauseApp в ней paussed := true и работа мидлета останавливается. После окончания звонка работа мидлета возобновляется и вызывается startApp в ней paused := false. по крайней мере так происходит на большинстве телефонов. замечено что авторы МР тяготеют к Нокии, возможно на смартах при переходе в фон просто вызывается pauseApp и мидлет продолжает работать.
(Offline)
 
Ответить с цитированием
Старый 08.01.2007, 17:33   #13
@lex
Оператор ЭВМ
 
Регистрация: 31.08.2006
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Is MIDlet Paused :dontknow: ?

А можно ли как-нибудь принять эти сообщения в MP?
(Offline)
 
Ответить с цитированием
Старый 08.01.2007, 23:23   #14
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Сообщение от pilgrim
приходит звонок. вызывается pauseApp в ней paussed := true и работа мидлета останавливается. После окончания звонка работа мидлета возобновляется и вызывается startApp в ней paused := false. по крайней мере так происходит на большинстве телефонов. замечено что авторы МР тяготеют к Нокии, возможно на смартах при переходе в фон просто вызывается pauseApp и мидлет продолжает работать.
Порядок работы ясен - и я не сомневался в том, что он именно такой. Но где же увязка с IsMidletPaused??? Получается, она никогда не станет true: до паузы она false по определению, во время паузы она предположим и true, но ее ведь никто не вызывает (не так ли, пауза же?), а после паузы она снова false по определению... Тупик-с получается... Но ведь true она все-таки каким-то образом возвращает! КАК?
(Offline)
 
Ответить с цитированием
Старый 09.01.2007, 12:29   #15
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Is MIDlet Paused :dontknow: ?

Некоторые телефоны поддерживают резидентные мидлеты, которые могут работать в фоновом режиме...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Midlet Pascal 3.0 (ALPHA) GRAY_WOLF Разработка MIDlet Pascal 57 02.01.2011 18:19
FAQ по Midlet Pascal 3.0 (ALPHA) Jadson FAQ 2 07.12.2009 12:58
Электронный журнал про MIDlet Pascal odd Прочие вопросы 14 26.10.2009 03:25
Brainfuck to Midlet Pascal anton_obuhov Основной форум 3 31.03.2009 13:09
Midlet Pascal и Bluetooth rancid Основной форум 12 24.09.2006 12:15


Часовой пояс GMT +4, время: 17:54.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com