zoom video sdk "set aec delay20" "fps error" SharedArrayBuffer관련 오류
2021년 8월 24일 화요일
관련 zoom document 내용
https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#web-isolation
SharedArrayBuffer 지원못할때 발생하는 오류
크롬 92버전(2021년 7월 업데이트)부터 cross-origin isolation이 필수가 됨
Making your website "cross-origin isolated" using COOP and COEP Use COOP and COEP to set up a cross-origin isolated environment and enable powerful features like SharedArrayBuffer
performance.measureUserAgentSpecificMemory() and high resolution timer with better precision.
SharedArrayBuffer on Chrome desktop requires cross-origin isolation starting from Chrome 92. Learn more at SharedArrayBuffer updates in Android Chrome 88 and Desktop Chrome 92.
SharedArrayBuffer 지원 확인
해당웹페이지에서 개발자모드(F12) 콘솔에서 간단히 확인할 수 있다.
typeof SharedArrayBuffer === 'function' > false
해결방법 1 : COOP, COEP 설정
- nginx 설정
add_header Cross-Origin-Embedder-Policy require-corp;
add_header Cross-Origin-Opener-Policy same-origin;
- 개발 react 설정
zoom video sdk react 샘플 config-overrides.js addDevServerCOOPReponseHeader 참조
const addDevServerCOOPReponseHeader = (config) => {
config.headers = {
...config.headers,
'Cross-Origin-Embedder-Policy': 'require-corp',
'Cross-Origin-Opener-Policy': 'same-origin',
}
return config
}
이 방법은 COEP가 require-corp로 설정되서 외부 스크립트를 사용할때는 문제가 되기도 한다.
(카카오 주소찾기 api 같은..)
해결방법 2 : OriginTrials 설정 (94버전까지만 허용)
(* 2021년 11월 02일기준 103버전까지로 변경됨)
https://developer.chrome.com/origintrials/#/trials/active
SharedArrayBuffers in non-isolated pages on Desktop platforms > REGISTER
등록후 나온값을 meta 태그나 http header에 넣는다.
https://github.com/GoogleChrome/OriginTrials/blob/gh-pages/developer-guide.md#valid-until-feedback
- meta 태그
<meta
http-equiv="origin-trial"
content="**insert your token as provided in the developer console**"
/>
- nginx 설정
add_header Origin-Trial **token as provided in the developer console**
- 개발 react 설정
zoom video sdk react 샘플 config-overrides.js addDevServerCOOPReponseHeader 참조
const addDevServerCOOPReponseHeader = (config) => {
config.headers = {
...config.headers,
'Origin-Trial': '**token as provided in the developer console**',
}
return config
}