![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена содержимого файла когда он открыт.
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]Не открывай файл монопольно.