4.3 версия

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

В частности браузер имеет замечательный встроенный медиаплеер. Его можно будет использовать в sB.

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: 4.3 версия

Post by Фант »

Mr. Kibernetik wrote:В частности браузер имеет замечательный встроенный медиаплеер. Его можно будет использовать в sB.
Интересно! Посмотрим :!:

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

Дело в том, что сейчас можно писать видео с камеры - вот и возникла потребность в его просмотре прямо в бейсике :D

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: 4.3 версия

Post by Фант »

С учётом появления камеры в sB может целесообразно будет сделать прямой доступ к стандартному фотоальбому устройства? Я это пожелание озвучивал ранее... И опять же прямой выход в DROPBOX :D
Можно сделать отличную прогу для фоток, а в дальнейшем и редактор изображений. С учетом того что изображения можно будет подгружать из дропбокса в устройство на прямую без заморочек с icloud наверное будет здорово.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

Обновление предыдущей информации: объект BROWSER будет иметь возможность загружать локальные файлы, если специально не указан протокол HTTP://

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

Фант wrote:И еще...при запуске с иконки можно убрать все видимые процессы не связанные с этий программой, пусть будет черный экран до появления самой программы.
Да, так и будет.

Пример программы "hello world.txt" будет обновлен.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

Будет добавлен новый пример программы "motion detector.txt" в секцию Interactive Interface.

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

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: 4.3 версия

Post by Фант »

Mr. Kibernetik wrote:Будет добавлен новый пример программы "motion detector.txt" в секцию Interactive Interface.

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

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 4.3 версия

Post by Mr. Kibernetik »

Фант wrote:Это Ваша разработка или стандартные возможности?
Это делает программа - пример. Алгоритм работы такой:
программа получает очередной кадр с камеры, попиксельно сравнивает его содержимое с предыдущим кадром. Если находит разницу между кадрами, то включает видеозапись в файл, при этом продолжая проверять кадры. Как только кадры перестают различаться, видеозапись прекращается.
Программа на ходу генерит содержимое окна BROWSER, содержащего страницу со всеми записанными видеофайлами, которую можно полистать и тут же воспроизвести нужное видео.
При этом программа интерактивно отображает как видео с самой камеры, так и в отдельном окне показывает анализируемые точки, отображая как стабильные, так и изменившиеся точки кадра, плюс выделяет ту часть кадра, в которой замечено движение. Это все работает в реальном времени, даже на iPhone 3GS.

Code: Select all

/*
Motion Detector v1.0
Copyright © Mr.K, 2014

Detects motion and records it to video.
*/

cam.q=5 'detection quality [1,..] best=1
cam.s=0.15 'detection sensivity [0..1] lowest=1
dir "cache" delete
dir "cache" create
frame$="cache/tmp.jpg"
option screenlock off
settled=0
get orientation scr.o
set orientation scr.o
graphics
scr.w=screen_width()
scr.h=screen_height()
gosub cam_is_off
gosub cam_not_set
browser 1 at 0,scr.h/2 size scr.w,scr.h/2
browser 1 set text "No records"
camera 1 at back video
get camera 1 size cam.w,cam.h
if cam.w=0 then
  text
  print "Camera is not available"
  end
endif
dim cam.pix(3,cam.w,cam.h)

'sprite to show camera
sprite 1 begin scr.w/2,scr.h/2
sprite end
sprite 1 show
camera 1 view 1

'main loop
loop:
camera 1 snapshot frame$
gosub detect
if recording and endtime<timer() then
  'stop recording
  camera 1 stop
  recording=0
  gosub edit_browser
  recnum+=1
  gosub no_motion
endif
goto loop

edit_browser:
alltext$&="<video><source src=""cache/"&recnum&".mov""></video>"
browser 1 set text "<html><body>"&alltext$&"</body></html>"
return

no_motion:
sprite 2 begin scr.w/2,scr.h/2
refresh off
fill color 0,0,1
fill rect 0,0 to scr.w/2,scr.h/2
draw_text("Motion",0,3)
draw_text("not",1,3)
draw_text("detected",2,3)
sprite end
sprite 2 at scr.w/2,0
sprite 2 show
return

cam_not_set:
sprite 2 begin scr.w/2,scr.h/2
refresh off
fill color 0,0,1
fill rect 0,0 to scr.w/2,scr.h/2
draw_text("Camera",0,3)
draw_text("not",1,3)
draw_text("settled",2,3)
sprite end
sprite 2 at scr.w/2,0
sprite 2 show
return

cam_is_off:
fill color 0,0,0
fill rect 0,0 to scr.w/2,scr.h/2
draw_text("Camera",0,2)
draw_text("is OFF",1,2)
return

'detects movement
detect:
sprite 0 load frame$
sprite 0 begin
motion=0
xs=0
maxx=0 ! minx=cam.w
maxy=0 ! miny=cam.h
draw color 1,0,0
draw size 1
for y=cam.q to cam.h-cam.q step cam.q
  xs+=cam.q
  if xs>cam.q*2 then xs=cam.q
  for x=xs to cam.w-cam.q step cam.q*2
    get pixel x,y color r,g,b
    ro=cam.pix(0,x,y)
    go=cam.pix(1,x,y)
    bo=cam.pix(2,x,y)
    if abs(r-ro)>=cam.s or abs(g-go)>=cam.s or abs(b-bo)>=cam.s then 'motion detected
      motion=1
      if x>maxx then maxx=x
      if x<minx then minx=x
      if y>maxy then maxy=y
      if y<miny then miny=y
      draw rect x-1,y-1 to x+1,y+1
    else
      draw pixel x,y color 0,1,0
    endif
    cam.pix(0,x,y)=r
    cam.pix(1,x,y)=g
    cam.pix(2,x,y)=b
  next x
next y
sprite 1 end
if not motion and not settled then
  settled=1
  gosub no_motion
endif
if motion and maxx=minx and maxy=miny then motion=0
if motion and settled then
  endtime=timer()+3000
  'display motion part
  sprite 0 begin
  draw color 1,0,0
  draw size 3
  draw rect minx,miny to maxx,maxy
  sprite end
  sprite 0 resize scr.w/2,scr.h/2
  sprite 0 at scr.w/2,0
  sprite 0 show
  sprite 2 delete
  sprite 0 rename 2
  if not recording then
    'start recording
    camera 1 record "cache/"&recnum&".mov"
    recording=1
  endif
endif
return

def draw_text(t$,n,tn)
draw color 1,1,1
fs=scr.w/15
draw font size fs
off=(scr.h/2-fs*tn)/3
draw text t$ at (scr.w/2-text_width(t$))/2,fs*n+off
enddef

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: 4.3 версия

Post by Фант »

Очень интересно! А то хожу все и думаю как? Сразу первый вариант: снимок и попиксельный анализ :D , но потом подумал, что может это слишком для памяти ёмко и Вы чтото другое придумали :D
И что на айпаде 1 память не переполняет?

Post Reply