как должна работать программка вебкамер
Так как не разобрался как работает текущая, сразу прошу сделать так, как программка работать должна.
1) запуск программки. над черным экраном(320х240) строка состояния камеры.
бывает двух видов
"Камера не подключена. Присоедините ее к компьютеру и нажмите [Старт]"
"Камера запущена. Для остановки работы программы нажмите [Стоп]"
старт и стоп - это кнопочки
2) пусть камера запущена. Под строкой состояния появляется строка статуса.
Она такая
"Не настроено подключение к дневнику. Перейдите в [Настройки]"
"Картинка с веб-камеры передается в дневник раз в 30 сек. [Настройки]"
и еще ниже - строка ошибок.
Она пока что или
"Обмен с сервером происходит успешно" или
"Не удается взаимодействовать с сервером. Проверьте соединение с Интернет"
3) картинка с камеры, как я уже писал,должна быть не одна.
Экран Видео, помимо строк статуса и состояния, должен иметь два экрана с катинкой - по умолчанию 320х240. Слева - показывать текущую картинку на веб-камере, с частотой обновления около 30 каждов в секунду. Справа - последняя картинка, закаченная на сервер. Над картинками соотв заголовки (или под картинками).
4) в настройках можно задать - таймаут обновления, от 10 до 60 секунд. Время, через которое картинка будет пересылаться на север. в окне с видео должен работать таймер, отсчитывающий количество секунд до новой выкладки на сервер. Во время непосредственно выкладки должен работать маленький прогресс-бар.
5) это необходимые интерфейсные тонкости. теперь собственно работа программки с сервером.(если что то пока не работает, сделай программные заглушки... потом Макс допишет)
(1)При старте(когда пользователь нажал старт или запустил программу с уже подключенной камерой)програмка логинится на сервер через СКРИПТ1, передает логин и пароль, получает в ответ длинную строку - сессию(чтобы каждый раз не пересылать логин и пароль) или ошибку авторизации, о которой надо уведомить пользователя. Далее, одиножды, если камера подключена и все прошло хорошо, программка на СКРИПТ2, передает сессию и файлик - картинку с камеры, которая пишется на сервер. Далее, раз в таймаут, программка обращается с сессией к СКРИПТ3, который отвечает - пытались ли смотреть на камеру в течении ближайших 5 минут. Если пытались - то программка пересылает через СКРИПТ2 новую картинку. Если не пытались - ждет следующего таймаута, ничего не пересылая(экономя трафик).
(2)На сервере же скрипты живут вот так. Пользователь, в настройках дневника, может установить галочку "Подключить веб-камеру". В таком случае в его хидер будет вгенерен инклюдник, который просто будет строкой текста, вроде
<*hr><*center>Веб камера не подключена. Последний кадр 15:47 01.10.2003. <*a>Смотреть<*/a> - показывается, если время закачки последнего кадра более чем 5 минут.
В противном случае, показывается все то же самое, но "Веб камера подключена." и сразу в новом окне, через скрипт, окрывается 330х250 окошко с картинкой /users/valez/webcams/last.jpg?23432 отдающейся через скрипт <*img src=СКРИПТ4.php> и с авторефрешем через 30 секунд и его визуализацией "Обновление картинки через 23 секунд" под картинкой. Реализация рефреша не через window.location=, а через img.src= - то есть обновляется только картинка, сама страничка не мигает. Если такая возможность у яваскрипта.
(3) Работа же сервера с программкой устроена вот так.
СКРИПТ1 просто отдает сессию и сохраняет ее в таблице камер. Так же, если в настройках дневника не включена опция - поддержка камеры - скрипт ее включает и перегенеряет хидер.
СКРИПТ2 скачивает картинку в /users/valez/webcams/new.jpg и потом ее переименовывает в last.jpg
СКРИПТ3 смотрит последнее обращение к новой картинке и возвращает ответ.
В колонках играет:
Sher - Dove L'amore
LI 3.9.25