저는 픽사베이에서 아래 영상을 다운받아서 사용했으며, 영상의 저작권은 영상을 업로드한 사람에게 있습니다.
픽사베이 링크
mp4확장자는 Image로 지원을 해주지 않습니다.
용량제한을 보려 하니 개발 계정이라 용량 한도에 막혔습니다.
57MB는 올라가지만, 자세한 사항은 아래 공식 링크에서 확인해주세요
https://help.salesforce.com/s/articleView?id=sf.content_file_size_limits.htm&language=en_US&type=5
또한, 너무 긴 로딩등 페이지의 최적화를 위해 너무 큰 용량의 파일은 추천하지 않습니다. (개인적인 의견입니다.)
'Save Draft'버튼을 눌러 저장한 뒤, 'Publish'를 눌러 활성화해줍니다.
Publish를 하지 않으면 뜨지 않습니다.
자동재생을 위해 JS에서 videoEl.muted = true; videoEl.autoplay = true; 을 사용했습니다.
<template>
<div class="wrapper">
<div>
<p>CMS video</p>
<div class="video-wrap">
<video class="ocean-video" >
</video>
<h3 class="video-title">■ Video 영상 체크 ■</h3>
</div>
</div>
</div>
</template>
import { LightningElement, track } from 'lwc';
export default class Lwc040UseVideo extends LightningElement {
//MC7MYNFBJPRBBSNLFCS6KO7IGWU4는 Content Key값입니다.
@track bgVideoSrc = '/sfsites/c/cms/delivery/media/MC7MYNFBJPRBBSNLFCS6KO7IGWU4';
renderedCallback(){
let videoEl = this.template.querySelectorAll('video');
console.log('videoEl', videoEl);
if(videoEl){
this.playVideo(videoEl[0]);
}
}
playVideo(videoEl) {
videoEl.muted = true;
videoEl.autoplay = true;
videoEl.loop = true;
const source = document.createElement("source");
source.src = this.bgVideoSrc;
videoEl.appendChild(source);
videoEl.currentTime = 0;
videoEl.autoplay();
}
}
.ocean-video {
width: 100%;
}
.video-wrap{
position: relative;
}
.video-title{
position: absolute;
top: 60%;
left: 50%;
font-size: 54px;
color: #ffffffe6;
transform: translateX(-50%);
font-weight: bold;
}
잘 나옵니다.
Builder > Adminstration > Pages > Sites.com
salesforce classic이라 로딩이 느립니다.
Assets 탭을 선택하고 파일을 끌어옵니다.
최대 50MB가 한계라 올라가지 않습니다.
25mb 영상을 다운 받아서 다시 등록합니다.
만약 계정 용량이 다 찼다는 알림이 뜨면, CMS의 파일을 삭제하고 다시 시도합니다.
// @track bgVideoSrc = '/sfsites/c/cms/delivery/media/MC7MYNFBJPRBBSNLFCS6KO7IGWU4';
@track bgVideoSrc = '/auratest/s/assetsSmallOceanVideo.mp4';
자산의 url은 '/.com뒤에추가된사이트이름(없을수있음)/s/자산이름.자산확장자명' 으로 사용합니다.
URL이 바뀌고, 바뀐 URL에서도 영상이 잘 나오는 것을 확인할 수 있습니다.
* cms :
* 자산
영상을 사용하면 당연히 페이지는 무거워집니다.
페이지 로딩이 늘어날 수 있음을 생각해두시고, 방법은 편하신 방법으로 하시는 것을 추천드립니다. (5mb영상이 없어서 안했지만, URL로만 한다면 정적 자원도 가능 할 것 같네요.)
또 어느 방식이든 백업은 따로 해두시는 것을 추천드립니다.
영상의 경우 세로를 100%로 설정하고, width를 auto로 해서 좌우로 잘리게 하는 것을 추천합니다.
그러나 만약 배경화면을 영상으로 하는 경우 아래처럼 CSS를 설정하면 가로가 긴 경우 세로가 잘리고, 세로가 긴 경우 가로가 잘리게 됩니다. (영상 위아래 여백을 없애는 방법)
.bg-video{ position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); min-width: 100vw; min-height: 100vh; }