SlideShare uma empresa Scribd logo
1 de 16
HTML Study : Canvas & Video
- video tags
- video attributes
- video events
- video controls
video tags
브라우저마다 지원하는 비디오의 형식이 상이한데, 하나의 video 태그 내에
여러 source 태그를 작성해 두면 브라우저에 상관없이 비디오의 실행을
보장할 수 있음.
video 태그에 비디오를 삽입하는 3가지 방식 (1) :
- <video> 태그 내의 <source> 태그를 사용
video tags
video 태그에 비디오를 삽입하는 3가지 방식 (2) :
- <video> 태그의 src attribute 를 사용
가장 사용이 쉽고,
직관적임
video tags
video 태그에 비디오를 삽입하는 3가지 방식 (3 - 1) :
- javascript 제어 – 코드로 video 태그 만들기
위와 같은 방식으로 동적으로 DOM 에 객체를 생성하고 video 태그를 첨부할
수 있다.
앞의 두 경우와는 다르게 이 video 를 재생하려면 별도의 이벤트가 필요하다.
video tags
video 태그에 비디오를 삽입하는 3가지 방식 (3 - 1) :
- javascript 제어 – 현재 브라우저에 맞는 video 확장자 찾기
video 태그에 src 를 지정하지 않은 상태로도 현재 브라우저에서 지원하는
영상 포멧을 찾을 수 있다.
현재 mp4, webm, ogg 3 종이 있고, ogg 는 ogv 와 동일하다.
video attributes
autoplay >> 자동실행
controls >> 비디오 제어판 표시
loop >> 반복 여부
preload >> 프리로드
poster >> 비디오가 다음 작업을 준비할 동안 표기될 이미지
지정
video events
6 장에서 가장 많이 사용하는 2 가지 event :
- canplay : 브라우저가 비디오를 플레이할 수 있는 상황에 발생
- canplaythrough : 브라우저가 버퍼링 없이 비디오를 플레이할 수 있는
상황
만약 사용자가 끊김없는 재생을 원한다면 canplaythrough 이벤트를,
버벅거리더라도 가능한 빨리 보여 주려면 canplay 이벤트를 활용해야
한다.
더 많은 이벤트에 대한 정보는 아래 링크 참조 :
http://www.w3schools.com/tags/ref_av_dom.asp
video on canvas
Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(1)
HTML 에는 캔버스의 영역만 지정할 뿐 어떠한 비디오의 속성이나 태그도
작성할 필요가 없다. (원한다면 해도 되지만.)
video on canvas
Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(2)
실제로는 video 태그는 별도로 작동하고, 캔버스는 비디오의 개별 장면을
이미지로 그려낸다.
DOM 에 video 태그를 생성하고 사용자의 눈에서 감춘다.
video on canvas
Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(3)
canvas 를 작동시키는 function 내에서는 video 태그를 별도로 실행(video.play())
하고,
매 setInterval 이 호출되는 시점마다 현재 이미지를 그린다.
video on canvas
video.width 와 video.videoWidth 는 다르다.(height 에도 동일
적용)
width 는 동영상 재생기의 너비를 의미한다.
반면 videoWidth 는 비디오 원본의 너비를
의미함
video.height
video.videoHeight
video on canvas
video 를 canvas 에 표현할 때, 다른 그림 혹은 문자를 표기
가능
이미지를 먼저 그리고 정보를 나타낼 문자를 출력한다.
문자 출력 위치를 이미지 위에 해서 자막과 같이 표기할 수도
있음.
fun with video
어차피 drawImage 로 출력하다 보니, 앞서 배웠던
transform 등을 활용하면 마음대로 변형할 수 있다.
fun with video
어차피 drawImage 로 출력하다 보니, 앞서 배웠던
transform 등을 활용하면 마음대로 변형할 수 있다.
FIN
github :
http://github.com/juneyoung/HTML5_2014_12/
tree/master/HTML5_study/jyoh/week8

Mais conteúdo relacionado

Mais procurados

GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteSeok-yong Kim
 
프론트엔드 개발자
프론트엔드 개발자프론트엔드 개발자
프론트엔드 개발자jung kyunghwan
 
브라우저 훑어보기
브라우저 훑어보기브라우저 훑어보기
브라우저 훑어보기MinsikPark3
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기Haze Lee
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소윤학 권
 
Jenkins with Unity3d & Android
Jenkins with Unity3d & Android Jenkins with Unity3d & Android
Jenkins with Unity3d & Android 종국 임
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)JinKwon Lee
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 SuHyun Jeon
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN정호 전
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman항희 이
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법Gihyo Joshua Jang
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...Dennis Kim
 
[개인프로젝트]리눅스 도난 방비 모듈
[개인프로젝트]리눅스 도난 방비 모듈[개인프로젝트]리눅스 도난 방비 모듈
[개인프로젝트]리눅스 도난 방비 모듈지승 한
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)Service Worker 101 (한국어)
Service Worker 101 (한국어)Chang W. Doh
 
모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부NAVER D2
 

Mais procurados (20)

GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
프론트엔드 개발자
프론트엔드 개발자프론트엔드 개발자
프론트엔드 개발자
 
브라우저 훑어보기
브라우저 훑어보기브라우저 훑어보기
브라우저 훑어보기
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소
 
Jenkins with Unity3d & Android
Jenkins with Unity3d & Android Jenkins with Unity3d & Android
Jenkins with Unity3d & Android
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
NODEJS INTRO
NODEJS INTRONODEJS INTRO
NODEJS INTRO
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
 
[개인프로젝트]리눅스 도난 방비 모듈
[개인프로젝트]리눅스 도난 방비 모듈[개인프로젝트]리눅스 도난 방비 모듈
[개인프로젝트]리눅스 도난 방비 모듈
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)Service Worker 101 (한국어)
Service Worker 101 (한국어)
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
 
모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부
 

Semelhante a Html5 canvas6 week6n7n8

처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차Michael Yang
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차Michael Yang
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audiohyun soomyung
 
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.flashscope
 
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson중선 곽
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정leejungwang
 
제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125dgmit2009
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridappNAVER D2
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimediaJinKyoungHeo
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화NAVER D2
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJSEunYoung Kim
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...Amazon Web Services Korea
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것NAVER Engineering
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기Chang W. Doh
 
Wowza설치및사용법
Wowza설치및사용법Wowza설치및사용법
Wowza설치및사용법dasom im
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기GyeongSeok Seo
 

Semelhante a Html5 canvas6 week6n7n8 (20)

처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 6일차
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audio
 
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
 
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125제 5회 R&D 컨퍼런스 _양진희_20141125
제 5회 R&D 컨퍼런스 _양진희_20141125
 
Html5 video
Html5 videoHtml5 video
Html5 video
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
Pp3 devweb
Pp3 devwebPp3 devweb
Pp3 devweb
 
5-2. html5 multimedia
5-2. html5 multimedia5-2. html5 multimedia
5-2. html5 multimedia
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...
웹 3.0 시대에서의 블록체인, 메타버스 및 대체불가 토큰(NFT) on AWS 사례 공유 [레벨 200] - 발표자: 이이구, CTO, ...
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
Wowza설치및사용법
Wowza설치및사용법Wowza설치및사용법
Wowza설치및사용법
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 

Mais de Juneyoung Oh

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료Juneyoung Oh
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치Juneyoung Oh
 
How to build a slack-hubot with js
How to build a slack-hubot with jsHow to build a slack-hubot with js
How to build a slack-hubot with jsJuneyoung Oh
 
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능Juneyoung Oh
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2Juneyoung Oh
 
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSXJuneyoung Oh
 

Mais de Juneyoung Oh (7)

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치
 
How to build a slack-hubot with js
How to build a slack-hubot with jsHow to build a slack-hubot with js
How to build a slack-hubot with js
 
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2
 
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSX
 

Html5 canvas6 week6n7n8

  • 1. HTML Study : Canvas & Video
  • 2. - video tags - video attributes - video events - video controls
  • 3. video tags 브라우저마다 지원하는 비디오의 형식이 상이한데, 하나의 video 태그 내에 여러 source 태그를 작성해 두면 브라우저에 상관없이 비디오의 실행을 보장할 수 있음. video 태그에 비디오를 삽입하는 3가지 방식 (1) : - <video> 태그 내의 <source> 태그를 사용
  • 4. video tags video 태그에 비디오를 삽입하는 3가지 방식 (2) : - <video> 태그의 src attribute 를 사용 가장 사용이 쉽고, 직관적임
  • 5. video tags video 태그에 비디오를 삽입하는 3가지 방식 (3 - 1) : - javascript 제어 – 코드로 video 태그 만들기 위와 같은 방식으로 동적으로 DOM 에 객체를 생성하고 video 태그를 첨부할 수 있다. 앞의 두 경우와는 다르게 이 video 를 재생하려면 별도의 이벤트가 필요하다.
  • 6. video tags video 태그에 비디오를 삽입하는 3가지 방식 (3 - 1) : - javascript 제어 – 현재 브라우저에 맞는 video 확장자 찾기 video 태그에 src 를 지정하지 않은 상태로도 현재 브라우저에서 지원하는 영상 포멧을 찾을 수 있다. 현재 mp4, webm, ogg 3 종이 있고, ogg 는 ogv 와 동일하다.
  • 7. video attributes autoplay >> 자동실행 controls >> 비디오 제어판 표시 loop >> 반복 여부 preload >> 프리로드 poster >> 비디오가 다음 작업을 준비할 동안 표기될 이미지 지정
  • 8. video events 6 장에서 가장 많이 사용하는 2 가지 event : - canplay : 브라우저가 비디오를 플레이할 수 있는 상황에 발생 - canplaythrough : 브라우저가 버퍼링 없이 비디오를 플레이할 수 있는 상황 만약 사용자가 끊김없는 재생을 원한다면 canplaythrough 이벤트를, 버벅거리더라도 가능한 빨리 보여 주려면 canplay 이벤트를 활용해야 한다. 더 많은 이벤트에 대한 정보는 아래 링크 참조 : http://www.w3schools.com/tags/ref_av_dom.asp
  • 9. video on canvas Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(1) HTML 에는 캔버스의 영역만 지정할 뿐 어떠한 비디오의 속성이나 태그도 작성할 필요가 없다. (원한다면 해도 되지만.)
  • 10. video on canvas Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(2) 실제로는 video 태그는 별도로 작동하고, 캔버스는 비디오의 개별 장면을 이미지로 그려낸다. DOM 에 video 태그를 생성하고 사용자의 눈에서 감춘다.
  • 11. video on canvas Canvas 안에서 비디오를 재생하는 것은 눈속임이다.(3) canvas 를 작동시키는 function 내에서는 video 태그를 별도로 실행(video.play()) 하고, 매 setInterval 이 호출되는 시점마다 현재 이미지를 그린다.
  • 12. video on canvas video.width 와 video.videoWidth 는 다르다.(height 에도 동일 적용) width 는 동영상 재생기의 너비를 의미한다. 반면 videoWidth 는 비디오 원본의 너비를 의미함 video.height video.videoHeight
  • 13. video on canvas video 를 canvas 에 표현할 때, 다른 그림 혹은 문자를 표기 가능 이미지를 먼저 그리고 정보를 나타낼 문자를 출력한다. 문자 출력 위치를 이미지 위에 해서 자막과 같이 표기할 수도 있음.
  • 14. fun with video 어차피 drawImage 로 출력하다 보니, 앞서 배웠던 transform 등을 활용하면 마음대로 변형할 수 있다.
  • 15. fun with video 어차피 drawImage 로 출력하다 보니, 앞서 배웠던 transform 등을 활용하면 마음대로 변형할 수 있다.