Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замена содержимого файла когда он открыт.


eRoR_rrr ©   (2009-08-24 08:49:00) 

Здравствуйте.
Столкнулся с проблемой, даже и не знаю что сделать.
Вообщем. Программа генерирует необходимую картинку каждые 500мс. Картинка эта доступна по http. Естественно этот файл могут смотреть кто угодно просто введя необходимый адрес страницы. В браузере с помощью JS отправляется запрос на картинку каждые 500мс.
По задумке должно получится что-то вроде слайдов.
Но вся проблема в том что во время когда пользователь из браузера пытается посмотреть этот слайд, естественно программа которая генерирует картинку говорит что нельзя записать в файл. А так как пользователь может быть не 1 и не 10 .... проблема.


Slym   (2009-08-26 09:49:00) [1]

я бы написал CGI которая будет отдавать картинку, а брать можно напрямую из генератора картинки (MMF, сокеты и прочий РПЦ) или вообще объединить в один флакон


antonn   (2009-08-25 14:54:00) [2]


> Именно так :)
> Просто с камеры можно смотреть только с помощью ActiveX,
>  то есть смотреть смогут только с браузера ИЕ, а надо что-
> бы неважно какой именно браузер был. А в самой камере нет
> поддержки MJPEG ... Вообщем вот так :))

а сам кадр можно забрать "вручную"? в виде стрима. Тогда не сложно написать свой http сервер, и уже на апачевской странице в тегах <IMG> указать этот сервер с ресурсом.


Loginov Dmitry   (2009-08-25 12:27:00) [3]


> Именно так :)
> Просто с камеры можно смотреть только с помощью ActiveX,
>  то есть смотреть смогут только с браузера ИЕ, а надо что-
> бы неважно какой именно браузер был. А в самой камере нет
> поддержки MJPEG ... Вообщем вот так :))


Попробуй картинку вставлять динамически в код JS при
генерации HTML-страницы, а на клиенте по таймеру обновлять не
картинку, а HTML-страницу.


Anatoly Podgoretsky   (2009-08-25 08:15:00) [4]

> eRoR_rrr  (25.08.2009 06:10:10)  [10]

А все зависит от того, в каком виде файл нужен, если целостноый - то монопольно, если частично порушеный, но без блокировки, то наоборот.


eRoR_rrr   (2009-08-25 06:10:00) [5]

> может типа "видеонаблюдения" делает :)
Именно так :)
Просто с камеры можно смотреть только с помощью ActiveX, то есть смотреть смогут только с браузера ИЕ, а надо что-бы неважно какой именно браузер был. А в самой камере нет поддержки MJPEG ... Вообщем вот так :))

> Пиши в файл монопольно.
То есть получается программа не "отпустит" файл пока он не будет перезаписан полностью?


antonn   (2009-08-25 01:43:00) [6]


> А что, нельзя сразу сгенерировать все эти картинки, и затем
> по очереди их

может типа "видеонаблюдения" делает :)


Anatoly Podgoretsky   (2009-08-25 01:32:00) [7]


> И как это побороть

Пиши в файл монопольно.


Loginov Dmitry   (2009-08-24 21:18:00) [8]

А что, нельзя сразу сгенерировать все эти картинки, и затем по очереди их
загружать на клиенте с помощью того же JS ?


Ruzzz   (2009-08-24 20:36:00) [9]

С артефактами скорее всего из-за того что апач берет еще не полностью сохраненную картинку.


eRoR_rrr   (2009-08-24 11:08:00) [10]

Anatoly Podgoretsky, Спасибо. И вправду, самые основы надо было глядеть.

Но теперь новая проблема, иногда картинки в браузере видны с артефактами. И как это побороть я понятия не имею, кроме как если ждать момент когда картинка свободная и в этот момент перезаписывать её. Но это не вариант ...


Anatoly Podgoretsky   (2009-08-24 09:43:00) [11]

> eRoR_rrr  (24.08.2009 09:38:03)  [3]

Лермонтов поможет.


eRoR_rrr   (2009-08-24 09:38:00) [12]

antonn, http не свой, apache.

Anatoly Podgoretsky, монопольно ... ммм ... а как его надо открыть? Не подскажите ссылочкой где про это можно прочитать?


antonn   (2009-08-24 09:25:00) [13]

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


Anatoly Podgoretsky   (2009-08-24 08:56:00) [14]

Не открывай файл монопольно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо