당신은 주제를 찾고 있습니까 “html video 자동 재생 – HTML5 – N20- Back to Basic – HTML 20화 – 멀티미디어 – HTML5 비디오 재생, 자동재생, 포스터 설정하기, 웹접근성“? 다음 카테고리의 웹사이트 https://hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://hu.taphoamini.com/photos/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 Rock’s Easyweb 이(가) 작성한 기사에는 조회수 825회 및 좋아요 17개 개의 좋아요가 있습니다.
Table of Contents
html video 자동 재생 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 HTML5 – N20- Back to Basic – HTML 20화 – 멀티미디어 – HTML5 비디오 재생, 자동재생, 포스터 설정하기, 웹접근성 – html video 자동 재생 주제에 대한 세부정보를 참조하세요
00:00 – start
08:30 음소거
09:37 caniuse.com
홈페이지 : http://ezwebpub.com/
구독하기(subscribe now) : https://bit.ly/30wbC1y
멤버쉽 가입하기: https://www.youtube.com/channel/UCax1DP6hqZowNWF2lquKk0w/join
**가입후 반드시 유튜브 닉네임과 gmail주소를 [email protected]으로 보내주세요. 등급별 자료폴더의 권한을 드립니다.
수업 문의: [email protected]
온라인 수업 신청하기: https://forms.gle/CkgyzgDXfVGiuNrv8
완료본 소스 구매하기(buy final source) : http://ezwebpub.com/product-category/source/
html video 자동 재생 주제에 대한 자세한 내용은 여기를 참조하세요.
HTML5 video 태그 자동재생 안 될때 – 친절한효자손 취미생활
HTML5 새로운 태그 중 라는 태그가 있습니다. 말그대로 비디오 동영상 파일을 재생시키고자 할 때 사용하는 요소입니다. 태그에 대해서 이미 자세하게 …
Source: rgy0409.tistory.com
Date Published: 4/8/2022
View: 324
HTML / video / 동영상 삽입하는 태그
HTML 5에서 추가된 것이므로, HTML 5를 지원하지 않는 웹브라우저(예를 들어 IE 8 이하)에서는 작동하지 않는다. 문법 zzz autoplay : 동영상을 자동으로 재생한다.
Source: www.codingfactory.net
Date Published: 2/7/2021
View: 1275
페이지에 접속함과 동시에 ‘영상이 자동재생’되게 해달라는 요청을 받았습니다. ‘autoplay넣으면 됐던거 같은데, 모바일에서는 자동재생 안됐던 것 …
Source: kangdanne.tistory.com
Date Published: 2/7/2021
View: 8353
video 태그 autoplay 재생이 안될때 (Chrome / Safari)
비디오를 자동 재생 (autoplay=”autoplay”)을 지정해도 안될 때. html5의 새로운 태그
Source: blog.edit.kr
Date Published: 8/20/2022
View: 6033
HTML5 비디오 자동 재생 관련 정책 및 조건(Chrome, Safari를 …
1. 무음인 경우 항상 자동 재생이 가능. 음소거 ON:
Source: d0gf00t.tistory.com
Date Published: 4/1/2021
View: 3152
또한 비디오의 너비와 높이, 자동재생과 반복 여부, 브라우저 기본 컨트롤 노출 여부 등 다른 정보도 특성을 통해 지정할 수 있습니다.
Source: developer.mozilla.org
Date Published: 10/1/2021
View: 2245
03. 모바일
* veo파일에 audio track이 존재하지 않으면 muted속성이 없어도 자동재생이 된다. (출처: http://iropke.com/archive/veo-autoplay.html). muted …
Source: blog.leehov.in
Date Published: 4/5/2022
View: 3215
HTML5 비디오 자동 재생 – 개발 메모장
veo요소에 muted 속성을 추가 하거나, muted 값을 true 로 설정한 경우는 자동 재생이 가능합니다.
Source: hohoya33.tistory.com
Date Published: 8/26/2021
View: 1128
JS : 모바일 웹앱에서 video 태그 자동재생 구현하기 ( + …
IOS의 Safari와 안드로이드의 Chrome에 맞춰서 비디오를 자동 재생을 시키려면 몇가지 유의해야 할 점이 있습니다. 이에 대해서 알아보고 추가적으로 IOS …
Source: jw910911.tistory.com
Date Published: 4/26/2022
View: 6183
크롬에서 Video Autoplay가 안되는 이유 – 블로그 홈
Develop/HTML. 크롬에서 Veo Autoplay가 안되는 이유 | Veo Tag Autoplay is not working in … mute를 하지 않고 자동재생 하는 법은 없을까 ?
Source: ddunnimlabs.tistory.com
Date Published: 6/5/2022
View: 9627
주제와 관련된 이미지 html video 자동 재생
주제와 관련된 더 많은 사진을 참조하십시오 HTML5 – N20- Back to Basic – HTML 20화 – 멀티미디어 – HTML5 비디오 재생, 자동재생, 포스터 설정하기, 웹접근성. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 html video 자동 재생
- Author: Rock’s Easyweb
- Views: 조회수 825회
- Likes: 좋아요 17개
- Date Published: 2021. 9. 14.
- Video Url link: https://www.youtube.com/watch?v=IRzfhAkqCns
HTML5 video 태그 자동재생 안 될때
반응형
HTML5 새로운 태그 중
HTML5 백그라운드에 무한재생 동영상을 넣자! video 태그 사용법
위의 본문에서도 나와있지만 정확하게 언급을 하지 않은 부분이 있어서 다시 한 번 개념을 확실히 정리하기위해 이 글을 작성하게 되었습니다. 저도 까먹을 수 있는 부분이기도 하구요.
비디오 포맷 호환 목록
video 태그안에 사용하는 속성 중 autoplay와 loop는 아마도 동영상을 백그라운드에 넣고자 할 때 사용하게 될 것입니다. 그런데 일부 브라우저에서 자동 재생이 안 되는 경우가 있습니다. 동영상 인코딩도 분명 H.264와 AAC 포맷인 MP4임에도 불구하고 말입니다. 아래는 동영상 포맷과 브라우저의 호환성에 대한 표입니다. 참고하시기 바랍니다.
브라우저 종류 MP4 WEBM OGG 인터넷 익스플로러 (단종) ○ X X 크롬 ○ ○ ○ 파이어폭스 ○ ○ ○ 사파리 ○ X X 오페라 ○ ○ ○
익스플로러는 이제 서비스를 중단했기 때문에 다른 브라우저를 중심으로 살펴보시면 될 것 같습니다. 현재까지는 MP4가 모든 브라우저에서 지원이 되는것으로 확인됩니다. 다만 앞서 언급한대로 H.264 + AAC 방식으로 인코딩된 MP4 포맷이어야 합니다. 이점 꼭 유념해 주시기 바랍니다.
자동 재생이 안 된다면?
만약 오토플레이를 설정했음에도 불구하고 자동 재생이 안 된다면 아래와 같이 muted를 사용해 보시기 바랍니다.
mute라는건 음소거라는 의미입니다. 이것은 크롬과 사파리의 엔진 정책입니다. 동영상의 사운드를 완전히 차단해야 재생이 되도록 설계되었기 때문에 어쩔 수 없는 부분인 것입니다. 아무래도 동영상을 이용한 악용 사례들 때문에 이런 시스템을 적용시키지 않았을까 싶기도 합니다. 이와 관련된 구글 개발자 문서가 아래에 있으니 궁금하시면 참고해 보시기 바랍니다.
https://developer.chrome.com/blog/autoplay/
스크립트를 활용한 자동 재생
크롬과 사파리 외에 다른 브라우저에서 자동 재생이 되게 하려면 스크립트를 활용한 방법도 있습니다. 아래처럼요.
주의 사항은 video 태그에 id값을 부여해서 스크립트와 연결시켜야 한다는 것입니다. 이것만 주의해서 사용하시면 됩니다. 스크립트는 HTML의
에 넣으시고는 에 사용하시면 됩니다. 끝. 반응형
HTML / video / 동영상 삽입하는 태그
video
video는 HTML 문서에 동영상을 삽입하는 태그이다. HTML 5에서 추가된 것이므로, HTML 5를 지원하지 않는 웹브라우저(예를 들어 IE 8 이하)에서는 작동하지 않는다.
문법
autoplay : 동영상을 자동으로 재생한다.
controls : 재생, 정지 등 조작 메뉴를 보여준다.
loop : 동영상을 반복 재생한다.
poster : 동영상 재생 전에 보여줄 이미지이다.
preload : 페이지를 열 때 무엇을 로드할지 정한다. auto : 동영상, 메타데이타 모두 로드한다. metadata : 메타데이타만 로드한다. none : 로드하지 않는다.
source src : 동영상 위치를 입력한다. 웹브라우저가 가장 많이 지원하는 형식은 MP4이다. type : 동영상 타입을 알려준다. 만약 MP4 파일이라면 video/mp4라고 적는다.
zzz : 웹브라우저가 video 태그를 지원하지 않을 때 출력될 텍스트이다.
상충되거나 혼자서는 작동하지 않는 속성이 있다. 예를 들어 autoplay로 정하면 preload는 무시된다. 크롬 등 일부 웹브라우저에서는 muted와 autoplay를 같이 사용해야 자동 시작이 작동한다.
예제 1
Clouds.mp4라는 동영상을 HTML 문서에 삽입한다.(테스용 동영상은 https://pixabay.com/videos/에서 구할 수 있다.)
페이지가 로드되면 동영상이 자동 재생되고, 반복하여 재생된다.
재생, 정지 등 조작 메뉴가 보이지 않는다.
IE 8 등 video 태그를 지원하지 않는 웹브라우저에서는 ‘Your browser does not support the video tag.’를 진하게 출력한다.
크기, 배치 등은 CSS로 조절하는 것이 좋다.
HTML
예제 2
페이지가 로드되면 Clouds.png라는 이미지와 재생 메뉴를 보여준다.
재생 버튼을 클릭하면 동영상을 재생한다.
HTML
자동 재생 autoplay에 대한 방법과 생각
페이지에 접속함과 동시에 ‘영상이 자동재생’되게 해달라는 요청을 받았습니다.
‘autoplay넣으면 됐던거 같은데, 모바일에서는 자동재생 안됐던 것같은데?’등등의 기억을 더듬어 코드를 수정! 했으나 실패하여 0부터 다시 다 찾아봐야만했던 슬픈 이야기.
[처음 전달 받았던 코드의 ux flow]1. 재생 버튼을 클릭하면
2. 영상이 담긴 레이어 팝업이 뜨면서
3. 해당 영상이 자동 재생된다.
[요청 사항]1. 페이지 접속 시 메인화면 상단의 영상 자동 재생
2. 영상의 소리도 재생
[결론]1. 자동 재생 시킴
2. 구글 정책 설명 후 소리 muted로 타협
1. 자동 재생 되지 않은 사례
https://developer.chrome.com/blog/autoplay/
Chrome’s autoplay policies are simple:
– Muted autoplay is always allowed.
– Autoplay with sound is allowed if:
* The user has interacted with the domain (click, tap, etc.).
Chrome의 자동 재생 정책 은 간단합니다.
– 음소거된 자동 재생은 항상 허용됩니다.
– 다음과 같은 경우 소리와 함께 자동 재생이 허용됩니다.
* 사용자가 도메인과 상호작용했습니다(클릭, 탭 등).
출처 : chrome developer
즉,
❗ 자동재생 하지마라.
❗ 하려면 음소거를 해라.
2. 그래서 음소거 속성을 추가했습니다.
3. 자동 재생이 됩니다. 다만 소리가 나오지 않네요.
회사에서 요구한 거니까 일단 ‘시도’를 하는 모습이 필요합니다.
“사용자를 위한~~”등의 접근성에대한 마음은 잠시 접어두고요.
💡 아이디어
일단 모든 DOM 요소가 로드되어 페이지에 안착했을때(video 태그의 랜더링이 완료되면)
슬며시 muted를 제거해보기로 했습니다.
🙋♀️ “소리 끈 video 입장이요~”
👨✈️ 통과!
🙋♀️”소리켠다”
결과
Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first
출처 – Chrome Developers
DON’T!!!
4. “사용자가 도메인과 상호작용했습니다(클릭, 탭 등)”에 집중 해보기로했습니다.
:: “window가 로드 되는 걸 하나의 이벤트로 여겨볼텐가?”
결과
Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first
:: “scroll이면 상호작용이겠지? 스크롤이 살짝! 됐을 때 재생기시키면 되겠지?”
결과
Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first
이유?
“도메인에서의 사용자 상호 작용”으로 간주되는 것은 무엇입니까? 문서 자체를 클릭하면 (스크롤링 제외) 사용자 상호작용으로 계산됩니다.
출처 – The Chomium Projects – autoplay
스크롤은 제외라네요.
안됩니다 안돼요
빈틈없이 다 잡아냅니다.
4. 공식문서에서 근접한 답을 찾았다.
https://developer.chrome.com/blog/autoplay/#audiovideo-elements
https://developers.google.com/web/updates/2016/03/play-returns-promise
하지만 이 또한 간헐적으로 정지합니다.
때로는 스크롤을 다내리는 동안 정지해있다가, 화면 어딘가를 클릭해 주어야 재생됩니다.
[번외]📍 fullpage.js 에서 영상 재생 유지하고 싶을 때
전달받은 소스의 레이아웃은 fullpage.js로 작성되어 있었습니다.
이때 다른 section으로 슬라이드가되면 비디오가 일시정지 됩니다.
페이지가 다른 슬라이드로 넘어가도 비디오의 재생을 유지하기 위해서는 data-keepplaying 속성을 넣어줍니다.
https://github.com/alvarotrigo/fullPage.js#pause-on-leave
📍 playsinline
ios(아이폰 등)에서 video재생버튼 선택 시 전체화면으로 재생되는 것을 방지하려면 playsinline속성을 넣어준다.
playsinline
비디오가 요소의 재생 영역 내에서 “인라인”으로 재생됨을 나타내는 부울 속성입니다.
이 속성이 없다고 해서 비디오가 항상 전체 화면으로 재생된다는 의미는 아닙니다.
참고 : Autoplaying inline videos on iPhone iOS 10 using Angular – Abou Kone
📍 시도했으나 안된 것들
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_prop_muted
[마무리]😅 처음 전달 받은 코드에서는 왜 되었던가?
“1. 재생 버튼을 클릭하면” 이라는 트리거가 있었다.
😅 크롬을 포기할 게 아니면 구글이 시키는 대로 하자.
무려 chromium 프로젝트에서 공시한 사항이니, 무시하면 SEO 불리해질 수 있지 않을까? 그건 아니다.
자동 재생을 드물게 사용합니다. 자동 재생은 강력한 참여 도구가 될 수 있지만 원치 않는 사운드가 재생되거나 원치 않는 비디오 재생의 결과로 불필요한 리소스 사용(예: 데이터, 배터리)을 인식하는 경우 사용자를 짜증나게 할 수도 있습니다.
출처 : The Chromium Projects
구글 SEO자체에는 불리함을 주지 않지만 비슷한 의견을 찾았다.
https://www.quora.com/Are-videos-that-auto-play-good-or-bad-for-SEO
It’s a bad user experience and SEO is valuing user experience more and more. If someone comes to the site and a video starts autoplaying, they are more likely to click out, increasing bounce rate which has a negative impact on SEO. – Mariachiara Marsella
(그것은 나쁜 사용자 경험이며 SEO는 사용자 경험을 점점 더 중요하게 생각합니다.
누군가가 사이트에 와서 비디오가 자동 재생을 시작하면 클릭할 가능성이 높아져 이탈률이 증가하여 SEO에 부정적인 영향을 미칩니다.
‘그럼에도 SEO 사용자 경험을 더욱 충족하는 방향으로 발전 한다.’
‘자동 재생되는 페이지 = 안좋은 사용자 경험. 결국 이탈률을 야기시킨다.
이탈률이 많은 페이지 = SEO에 부정적인 영향’
참고해보면 좋을 Chorme의 더 나은 광고 표준 (Coalition for Better Ads)
It Hurts Accessibility
Believe it or not, there are people with visual impairments who browse the internet. People without handicaps don’t tend to think about the people who do, and it can cause a significant loss of reputation, traffic, or just accessibility.
(믿거나 말거나 인터넷을 검색하는 시각 장애가 있는 사람들이 있습니다. 핸디캡이 없는 사람들은 장애가 있는 사람들에 대해 생각하지 않는 경향이 있으며, 이는 평판, 트래픽 또는 접근성에 상당한 손실을 초래할 수 있습니다.)
출처 : SEOblog
[참고]MDN –
: 비디오 삽입 요소 https://developer.mozilla.org/ko/docs/Web/HTML/Element/Video
MDN – 미디어 및 Web Audio API 자동 재생 가이드
https://developer.mozilla.org/ko/docs/Web/Media/Autoplay_guide
The Chomium Projects
https://sites.google.com/a/chromium.org/dev/audio-video/autoplay
Chrome Developers – Autoplay policy in Chrome
https://developer.chrome.com/blog/autoplay/
Chrome Developers – DOMException: The play() request was interrupted
https://developers.google.com/web/updates/2017/06/play-request-was-interrupted
블로그 –
태그 브라우저, 모바일 이슈 정리 사항
반응형
video 태그 autoplay 재생이 안될때 (Chrome
반응형
Safari, Chrome 브라우저에서
태그를 이용해서 비디오를 자동 재생 (autoplay=”autoplay”)을 지정해도 안될 때
html5의 새로운 태그
해결방법: Javascript을 이용해서 자동 재생을 실행해주면 됩니다. (주의: 태그 이후에 script를 추가해 주셔야 합니다.)
브라우저에서
태그의 객체가 생성 후, Javascritp를 통해서, 해당 비디오 소스를 재생(play)합니다.
음소거를 해줘야 자동 재생이 가능합니다.
Chrome 경우 음소거 muted=”muted”를 넣어줘야만 자동 재생됩니다.
… 사파리와 크롬의 브라운저 엔진 자체의 정책에서
기본적으로 음소거를 진행하지 않으면,
비디오를 자동 재생(play) 제한이 있기에, 음소거 요소를 추가해 줘야 합니다.
참고: https://stackoverflow.com/questions/17994666/video-auto-play-is-not-working-in-safari-and-chrome-desktop-browser
[ Full Example 소스 ]
Attribute Value Description width, height pixels 사이즈 화면의 사이즈 autoplay autoplay 자동 재생 값이지만, 자동실행이 안될때가 많음 loop loop 동영상의 반복 실행명령 muted muted 소리 끔 controls controls 동영상 컨트롤러(Play, Pause, Full Size등)
추가로,
Javascript를 이용한 Muted를 끄기(소리 켜기)
Note: 사용자 인터랙션이 이루어지지 않은 탭에서 오디오가 포함된 미디어를 프로그램적으로 수행하면 일반적으로 차단됩니다. 차단 조건은 브라우저별로 몇 개 더 추가될 수 있습니다.
자동 재생 가능 여부
일반적으로 아래 조건 중 하나라도 해당된다면 자동 재생이 가능하다고 볼 수 있습니다
음소거 이거나 오디오 볼륨이 0
이거나 오디오 볼륨이 0 사용자가 사이트와 상호작용 함 (클릭, 터치, 키 누름 등.)
화이트리스트에 등록된 사이트; 브라우저가 판단하기에 사용자가 해당 사이트에서 미디어를 자주 재생하거나 수동으로 화이트 리스트에 사이트를 등록한 경우를 포함합니다.
자동 재생 정책이 허용으로 지정되어
(참고: https://developer.mozilla.org/ko/docs/Web/Media/Autoplay_guide)
video 태그에서 mp4 비디오 파일이 재생되지 않는 또 다른 케이스
mp4 파일의 비디오 코덱의 문제로 재생되지 않을 때도 있습니다.
2017.06.09 – [Web/WEB기본] – [html5] html5의 video 태그에 mp4 파일이 재생이 안될때
반응형
HTML5 비디오 자동 재생 관련 정책 및 조건(Chrome, Safari를 중심으로)
반응형
이 글은 Google Developers 의 자동 재생 정책 변경사항, Webkit 블로그의 iOS를 위한 새로운
정책, macOS를 위한 자동 재생 정책 변경사항을 기반으로 정리하였고, 검증을 위해 몇가지 브라우저로 테스트 하였습니다. 디바이스, 브라우저 종류와 버전 등 환경에 따라 자동 재생에 대한 정책이 다르므로 해당 글과 다른 점 있을 수 있다는 것 말씀드립니다. 자동 재생이 되는 경우
1. 무음인 경우 항상 자동 재생이 가능.
음소거 ON :
요소에 muted 속성을 추가 하거나, video.muted 값을 true 로 설정한 경우는 자동 재생이 가능합니다. var video = document.querySelector(‘video’); video.muted = true; // #2 video.muted 값을 true로 설정 음소거 OFF & 볼륨 0 : video.muted 값은 false 이고, video.volume 값이 0 인 경우 일부 환경(iPhone, 삼성 브라우저)에서는 자동 재생이 불가합니다.
오디오 트랙 없음 : 비디오 파일에 오디오 트랙이 없는 경우 일부 브라우저(Safari, Firefox)는 muted 여부와 별개로 자동 재생이 가능합니다.
무음 오디오 트랙: 해당 브라우저에서 유효한 무음 상태가 아니면서, 무음인 오디오 트랙이 있는 경우 자동 재생이 불가합니다.
테스트 페이지(Codepen) – 정확한 확인을 위해 별도 창에서 확인하는 것을 추천.
See the Pen 무음 자동 재생 테스트 by arori (@arori) on CodePen.
2. 동일 origin 도메인 내에서 유저 인터렉션 이벤트 발생 시 유음 자동 재생. (Chrome)
https://www.youtube.com 에 접속하여 특정 링크를 눌러 https://www.youtube.com/watch?v=ZRCdORJiUgU 로 접속한 경우, 유음 자동 재생 가능합니다.
에 접속하여 특정 링크를 눌러 로 접속한 경우, 유음 자동 재생 가능합니다. https://www.youtube.com/watch?v=ZRCdORJiUgU 주소창에 적고 바로 접속한 경우, 유저 인터렉션이 없으므로 유음 자동 재생 불가합니다.
3. 도메인의 MEI 점수가 임계 값을 넘으면 유음 자동 재생 가능. (PC Chrome)
MEI(Media Engagement Index)는 도메인 내에서 미디어 소비를 점수화 한 것입니다.
즉, 특정 PC에서 특정 도메인에 유음으로 미디어를 자주 소비하면 해당 PC에서, 그 도메인은 유음 재생 가능합니다.
MEI(Media Engagement Index) 참고 링크
4. PWA를 설치한 경우, 유음 자동 재생 가능. (Chrome)
“+” 아이콘을 클릭하거나(PC), “홈 화면에 추가” 하여 (Mobile) 설치하거나 유음 자동 재생 가능합니다.
“+” 아이콘으로 PWA 설치(PC) “홈 화면에 추가” 로 PWA 설치 (Mobile)
5. Feature Policy에 의해 상위에서 자동 재생 권한을 위임하면 유음 재생 가능. (Chrome)
재생하고자 하는 주체가 iframe일 때, 상위에서 자동 재생 권한을 위임하면 유/무음 자동 재생이 가능합니다.
상위가 자동 재생 권한을 위임하는 것이므로, 상위에서 권한이 없는 경우 유/무음 자동 재생 불가합니다.
Feature Policy 참고 링크, autoplay feature policy 참고 링크
6. 브라우저 사용자 옵션으로 동영상 자동 재생 허용 되어있는 경우 유/무음 자동 재생 가능.
자동 재생이 되지 않는 경우
1. 유음인 경우 자동 재생 불가.
2. 무음 자동 재생 후, 유저 인터렉션 없이 유음으로 변경해도 유음 자동 재생 불가.
기본적으로 비디오가 인터렉션 없이 유음으로 변경 되는 경우, 비디오는 일시정지 됩니다.
3.
가 온전히 보이지 않은 경우 무음 자동 재생 불가.
요소에 autoplay 속성으로 무음 자동 재생을 할 때, 아래와 같은 경우는 재생 불가합니다. CSS를 통해 보이지 않는(invisible) 경우. 비디오가 뷰포트(Viewport) 밖에 있는 경우. 무음 자동 재생 중에 스크롤 등으로 인해 비디오가 뷰포트 밖으로 나가는 경우, 일시 정지됩니다. DOM에 삽입되지 않은 경우. 요소에 속성으로 무음 자동 재생을 할 때, 아래와 같은 경우는 재생 불가합니다. 다른 자동 재생이 가능한 조건을 갖추었을 때, play() 함수를 이용하는 경우는 온전히 보이지 보이지 않아도 자동 재생(=유저 인터렉션 없이 재생)가능합니다.
4. 저전력 모드가 켜져있는 경우 유/무음 자동 재생 불가. (iPhone)
iPhone “설정” > “배터리” > “저전력 모드” 스크린 샷
5. 브라우저 사용자 옵션으로 동영상 자동 재생 차단 되어있는 경우 유/무음 자동 재생 불가.
개발자 참고 사항
1. 항상 자동 재생이 될 것이라고 가정하지 말고 개발 해야 함.
자동 재생이 되지 않은 상황을 대비하여 미디어 컨트롤을 노출하지 않거나, 무조건 일시 정지 버튼으로 노출하지말고 상황에 맞는 미디어 컨트롤을 항상 표시해야 합니다. 자바스크립트 play() 함수로 자동 재생을 구현 하는 경우에는 reject 되는 상황을 고려해야 합니다. var promise = document.querySelector(‘video’).play(); if (promise !== undefined) { promise.then(_ => { // 자동 재생 시작! }).catch(error => { // 자동 재생이 막힘. // “Play” 버튼을 노출해 유저가 재생을 시작할 수 있도록 한다 }); }
유튜브의 경우 미디어 컨트롤은 항상 표시되어있고, “유음 자동 재생 > 불가시 무음 자동 재생 > 불가시 정지 화면에 재생 버튼 노출” 로 서비스하고 있습니다.
자동 재생 가능/불가 환경을 가상으로 만들어 테스트해 볼 수 있습니다. (Chrome, Safari) Mac Safari “환경설정” > “웹사이트” > “자동 재생” 스크린샷
2. 자동 재생 제한은 요소 별로 부여 됨.
만약 여러 비디오를 연속해서 재생하려면(광고 등) 여러 미디어 요소를 만드는 대신 미디어 요소의 소스(source)를 변경하는 것이 좋습니다.
유튜브에서 광고 재생 후 본편 영상 재생시 비디오 소스 변경 예시
유튜브 광고 영상 재생시 비디오 소스 코드 영역 유투브 본편 영상 재생시 비디오 소스 코드 영역
그 외 읽을거리
1. 자동 재생 정책 완화에 영향을 미친 것
GIF파일의 Video화. GIF 파일은 흔히 짤방(Meme)에 사용 되는 포맷입니다. 하지만 인코딩 비용이 최신 비디오 코덱보다 비싸 더 큰 대역폭 사용하고, 더 많은 배터리 소모해서 여러 유명 사이트들이 GIF파일을 Video로 변경하여 서비스하기 시작했습니다. Video로 변경하면서 자동으로 재생되지 않아 GIF 대비 사용성 저하되는 문제가 발생하기 시작했습니다.
Video의 페이지 표현 요소화. 비디오를 페이지의 콘텐츠가 아니라 사이트를 표현하는 요소로 사용하는 경우에 자동 재생이 없이는 정상적으로 노출되지 않습니다. 비디오를 표현적 요소로 사용하는 웹사이트 (https://www.weareenvoy.com/)
2. 자동 재생 정책 강화에 영향을 미친 것
광과민성 발작을 일으킬 수 있는 영상, 음란물, 폭력, 혐오, 공포가 포함된 영상 등이 자동 재생되어 원치 않게 보게되는 문제가 있었습니다.
원치 않게 데이터가 소모되어, 특히 개발도상국에서 큰 문제가 되었습니다.
참고 링크
반응형
: 비디오 삽입 요소 – HTML: Hypertext Markup Language
HTML
요소는 비디오 플레이백을 지원하는 미디어 플레이어를 문서에 삽입합니다. 오디오 콘텐츠에도 사용할 수 있으나, The source for this interactive example is stored in a GitHub repository. If you’d like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
위 예제는
요소의 간단한 사용법을 보입니다. 또한 요소와 비슷하게, 표시하고자 하는 미디어로의 경로를 src 특성에 제공합니다. 또한 비디오의 너비와 높이, 자동재생과 반복 여부, 브라우저 기본 컨트롤 노출 여부 등 다른 정보도 특성을 통해 지정할 수 있습니다.
03. 모바일 태그 자동 재생 관련 이슈
이번 프로젝트에서 가장 골치아팠던 부분은 바로 일부 페이지에서 사용되는 동영상을 자동재생하는 기능이었다.
쉽게 될 줄 알았는데 아무래도 브라우저에서 사용자가 원하지 않는 동영상이 자동으로 재생되는것을 막아서 발생하는 문제였는데,
이를 한번 정리해보겠다.
video 태그에 autoplay가 작동하기 위해서는 muted 요소와, playsinline 요소(iOS)가 추가되어야 한다.
많은 브라우저에서 정책상의 문제로 소리가 나오는 동영상은 자동 재생 하지 않는다. 즉 음소거 영상의 경우에만 자동재생이 허용된다. 이를 위해 자동재생이 필요한 video 태그에는 muted 요소를 추가해줘야한다.
* video파일에 audio track이 존재하지 않으면 muted속성이 없어도 자동재생이 된다.
(출처: http://iropke.com/archive/video-autoplay.html)
muted 요소를 추가해주면 Android 환경에서는 동영상이 자동으로 재생되지만, iOS에서는 여전히 작동하지 않는다. iOS에서는 비디오를 자동재생하기 위해서 playsinline이라는 요소도 함께 추가 해줘야 한다.
결론적으로, 아래의 세 가지 요소는 한 세트라고 생각하면 된다.
autoplay muted playsinline
… 그리고, 이 모든 설정 후에도 iOS10이상 버전의 “저전력모드’와, IE8이하에서는 autoplay가 작동하지 않는다.
왜 재생이 안되는 거니….
모든 설정을 한 뒤에도 가끔가다가 내 핸드폰(iPhone XR)에서 동영상이 나오는 페이지에서 영상이 자동 재생 되지 않았는데, 그 원인은 바로 “저전력모드” 때문이었다. 답답하기도 했지만 한편으로는 유저의 입장에서 생각해보면 왜 그런지 이해도 됐다.
그런데 우리 앱은 영상이 모두 끝나지 않으면 다음 페이지로 넘어가지 않는다.
때문에 autoplay가 작동하지 않는 경우에 다음 페이지로 넘어가는 기능을 만들어야 했다.
이를 위해 다음의 경우에는 강제적으로 다음 페이지로 넘어가도록 했다.
1. video에 error 이벤트가 발생했을 때,
2. 짧은 시간 뒤에 (500ms) 동영상이 멈춰있을 때
playVideo = () => { try { this._video.play(); // 비디오가 정상적으로 동작하고 종료 되었을 때, this._video.addEventListener(‘ended’,(e) => { nextPage(); }); // 비디오가 재생 중 에러를 내보냈을 때, this._video.addEventListener(‘error’, (e) => { nextPage(); }) // 0.5 초 뒤에 비디오 상태 체크 setTimeout(() => this.check(), 500); } catch(e) { nextPage(); } } check = () => { // 0.5초 뒤에 비디오가 정지 상태일 때 if (this._video.paused || !this._video.played) { nextPage(); } }
정확한 이유는 모르겠지만 어떤 영상은 paused인 상태일 때가 있고, paused 상태가 아니더라도 재생 중이 아닌 경우가 있었다.
때문에 !played 일 때에도 다음 페이지로 강제로 넘어가도록 설정했고 결과적으로 잘 작동했다.
자동재생…
다음부터 서비스를 기획할 때에는 이번 경험을 양분 삼아 비디오 자동재생이 반드시 필요한 웹 페이지를 만드는 것을 지양해야겠다.
참고
HTML5 비디오 자동 재생
무음인 경우 항상 자동 재생이 가능
video요소에 muted 속성을 추가 하거나, muted 값을 true 로 설정한 경우는 자동 재생이 가능합니다.
비디오 파일에 오디오 트랙이 없는 경우 일부 브라우저(Safari, Firefox)는 muted 여부와 별개로 자동 재생이 가능합니다.
무음 자동 재생 중에 스크롤 등으로 인해 비디오가 뷰포트 밖으로 나가는 경우, 일시 정지됩니다.
저전력 모드가 켜져있는 경우 유/무음 자동 재생 불가. (iPhone)
JS : 모바일 웹앱에서 video 태그 자동재생 구현하기 ( + 추가적으로 IOS safari에서 자동 재생 시 저전력 모드일때 멈추는 문제 예외처리)
반응형
모바일 웹앱을 만들때 비디오를 자동 재생하는 부분에서 애를 먹곤 합니다.
IOS의 Safari와 안드로이드의 Chrome에 맞춰서 비디오를 자동 재생을 시키려면 몇가지 유의해야 할 점이 있습니다.
이에 대해서 알아보고 추가적으로 IOS Safari에서 저전력 모드일때 자동재생이 막히는 부분에서 예외처리 방법에 대해 알아보겠습니다.
모바일에서 Video 태그 자동재생
보통 모바일에서 비디오 태그를 자동재생 시킬때 필요한 몇가지 속성들이 있습니다.
Video 태그에 자동재생, 즉 autoplay를 활성화 시키려면 기본적으로 muted 속성이 필요합니다.
muted 속성은 video태그에서 소리를 막아주는 속성값입니다.
muted 속성이 필요한 이유는 웹 브라우저를 켰을때 유저가 원하지 않는데 자동재생되며 소리가 나게 되면 이를 악용하거나 보안상 좋지 않기 때문인 것으로 생각됩니다. (제 생각입니다.)
IOS에서는 추가적으로 video 태그에 playsinline이라는 속성값을 추가해 줘야 합니다.
playsinline 속성은 IOS safari에서 비디오가 재생될때 전체화면은 막는 속성입니다.
IOS safari에서 playsinline 속성이 없으면 비디오가 재생될때 항상 전체화면이 수행됩니다.
따라서 정리해보면 아래와 같습니다.
Android Chrome
muted 속성
IOS Safari
muted 속성
playsinline 속성
실제 소스코드는 아래와 같이 사용하시면 됩니다.
IOS safari에서 자동 재생 시 저전력 모드일때 멈추는 문제
얼마전 프로젝트를 진행하다가 분명히 muted에 autoplay 설정을 하였는데도 자동재생이 되지 않는 문제가 발생하였습니다.
아무리 검색을 해봐도 이유를 알수 없다가 우연히 아이폰의 저전력 모드가 켜져있는 것을 보고 저전력 모드를 껐더니 정상적으로 동작하는 것을 확인 할 수가 있었습니다.
찾아보니 저전력 모드일때는 autoplay muted playsinline 속성이 동작하지 않는다는 사실을 알 수가 있었습니다.
이를 위한 해결법은 현재로써는 유저에게 저전력 모드가 켜져있기 때문에 저전력모드를 꺼야한다는 UI를 보여주는 방법밖에 없습니다.
저전력모드가 켜져있을때 동작하는 video 태그의 callback 이벤트는 아래와 같습니다.
const video = document.getElementById(‘myVideo’); video.addEventListener(‘suspend’, () => { // We’re in low-power mode, show fallback UI // 저전력 모드일때 진입했을때 가이드 UI를 보여줍니다. }); video.addEventListener(‘play’, () => { // Remove fallback UI if user plays video manually // 유저가 수동으로 비디오를 Play할때는 가이드 UI를 제거해줍니다. });
자동재생이 IOS일때 되지 않는 문제에 대해 같은 문제를 겪고 있는 분들에게 도움이 되셨으면 좋겠습니다 🙂
감사합니다. !
참고
https://simplernerd.com/html-autoplay/
반응형
Video Tag Autoplay is not working in Chrome!
반응형
이번에 프로젝트를 위한 간단한 시연준비를 하면서 고생한 부분을 기록, 공유한다.
이번에 시연할 때 AWS를 통해 전달 받은 MediaSource를 웹 페이지에서 보여주어야 했다.
음.. 다른 mp4 파일 과는 다르게 실시간으로 업로드 되는 것을 2,3초 간격으로 받아 영상을 보여주어야 했다.
우리가 선택한 것은 익숙한 기술인 HLS였고, 나는 hls.js를 이용해서 구현했다.
뭐 기존에 다루던 라이브러리였고, 시연이라 데모수준에서 영상을 터트리는데는 큰 이슈는 없었다.
다만.. autoplay에서 애를 먹었다.
문제의 발견
요구사항은 해당 웹페이지에 접속하면 ‘미디어 소스 로드와 함께 자동으로 재생이 되어야 하며, Video태그에서 제공하는 컨트롤러 UI가 없어야 한다!’ 였다.
처음에 ‘ 이런거야 뭐 video 태그에 autoplay 하나 넣어 주면 됨 ㅋㅋ ‘ 라고 생각했고 ….사건의 시작이었다.
참 쉽죠? 하하..
하지만 Chrome에서 문제가 발생했다. 영상이 바로 재생이 되지 않는 이슈 발생!
원인 분석
원인 분석을 위해 여러가지 링크, 블로그, 문서들을 보았다.
먼저 블로그나 다른 문서들을 보면 muted 옵션을 추가로 주면 정상적으로 재생이 된다고 한다!
자 하나 더 늘었다. 과연 정상적으로 동작할까?
결과를 확인해본 재생은 정상적으로 되었다! 단지 음소거가 된 상태로 재생되었을 뿐..
mute를 하지 않고 자동재생 하는 법은 없을까 ?
결론부터 말하면 없다.
여기서 관련 링크 하나 첨부하고 -> 링크
구글에서 2018년에 Autoplay Policy를 재정의 했다.
SNS 및 여러 포스팅이 활발해 짐에 따라 용량이 큰 동영상 재생등이 사용자가 원치않는 리소스를 가져간다고 판단하여 브라우저에서 막아버렸다.
단, Autoplay를 하고 싶다면 muted를 하여 사용자가 컨텐츠를 사용하는데 지장없도록 제약하였다. 이것이 크롬에서 Autoplay가 되지 않는 이유이다.
물론 이것은 크롬브라우저만의 정책이기 때문에 익스플로러나 사파리 같은 다른 브라우저에서는 정상적으로 Autoplay가 된다.
시도
개발자라면 OS나 브라우저에서 막은 정책들을 우회하는 법을 연구해야한다……………..엌ㅋㅋㅋ
물론 상황에 따라 사용하기 위함이고.. 무조건 정책을 어기려고 하는건 아니니..
우선 고객사가 Autoplay가 되길 바라기 때문에 여러가지 시도를 해보았다.
[ 첫 번째 시도 ]<접근 방법>
Video 태그에 autoplay를 빼서 페이지에 접근하자마자 재생이 안되도록 한다. 페이지가 열리면 video 태그의 재생상태를 확인한다. 재생상태가 paused ( 당연히 paused 겠지… ) 면 1초뒤에 재생을 하도록 한다.
<기대 결과>
– Video 로딩 후 1초뒤에 재생.
<코드>
<결과>
– 실패 ㅠ
– 재생되지 않음.
[ 두번째 시도 ]<접근 방법>
muted가 된 상태로 autoplay 를 넣어 재생 시킨다 페이지에 접속 후 1초뒤에 muted 해제하기
<기대 결과>
– 페이지에 접속하면 autoplay, muted 속성으로 음소거된 상태로 자동재생됨.
– 1초뒤에 muted가 해제되면서 정상적으로 영상이 나오지 않을까?
<코드>
<결과>
– 실패 ㅠ
– muted = false값이 정상적으로 처리 되지 않음… 에러남 ㅠㅠ
여기서 잠깐
우선 접근 자체를 제일 처음에만 autoplay가 되지 않게 하면 되지 않을까? 해서 접근한 것이었는데… 틀렸다..
구글은 똑똑했고, 프로그램이 자동으로가 아닌 ‘사용자가 원해서’ 영상을 시청할 수 있도록 사용자 액션이 필요했다.
위에 링크에도 설명되어 있지만 영상 재생에 있어 사용자가 ‘원한다’ 라는 액션이 있어야 한다. 그게 재생버튼을 누르는 것이든 mute버튼을 누르는 것이든…
자 그럼 다시..
그래서 세번째 시도를 해보았다.
사용자가 마치 클릭한거 처럼! 해볼까 ?
[ 세번째 시도 ]<접근 방법>
페이지에 접속 했을 때 1초뒤에 onclick 이벤트를 trigger를 통해서 발생시킨다!!
<기대 결과>
– onclick 이벤트를 통해 실행시켰으니 되겠지? ㅋㅋㅋ후후
<코드>
<결과>
– 실패 ㅠ
– trigger로 처리 해도 사용자가 직접 누른것으로 인지 하지 못하는 것 같다… ( 정확하게 모르겠음..ㅠㅠ )
결론..
결국에는 ‘시청하기’ 버튼을 눌러서 재생 하도록 개발을 하긴 했지만 아직도 의문이다.. 정말 방법이 없는 것인가..?
혹시 이글을 보고 해결법 아시는 분은 댓글로 남겨주시면 아주 감사하겠습니다 ㅠㅠ
반응형
키워드에 대한 정보 html video 자동 재생
다음은 Bing에서 html video 자동 재생 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 HTML5 – N20- Back to Basic – HTML 20화 – 멀티미디어 – HTML5 비디오 재생, 자동재생, 포스터 설정하기, 웹접근성
- 웹퍼블리싱
- 웹디자인
- 코딩
- 웹 퍼블리셔
- 프론트 엔드
- web publishing
- web design
- html
- css
- jquery
- javascript
- figma
- 피그마
- php
HTML5 #- #N20- #Back #to #Basic #- # #HTML #20화 #- # #멀티미디어 #- #HTML5 #비디오 #재생, #자동재생, #포스터 #설정하기, #웹접근성
YouTube에서 html video 자동 재생 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 HTML5 – N20- Back to Basic – HTML 20화 – 멀티미디어 – HTML5 비디오 재생, 자동재생, 포스터 설정하기, 웹접근성 | html video 자동 재생, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.