倿§ãªã¢ããªã«é«åºŠãªç»é¢é²ç»æ©èœãæ§ç¯ããããã®Screen Capture APIã®åãæ¢ããŸããæ©èœããŠãŒã¹ã±ãŒã¹ãã»ãã¥ãªãã£ãäžçã®éçºè åããã¹ããã©ã¯ãã£ã¹ã解説ã
å¯èœæ§ãè§£ãæŸã€ïŒãã£ã¹ãã¬ã€é²ç»ã®ããã®Screen Capture API培åºè§£èª¬
仿¥ã®ãŸããŸãããžã¿ã«åããäžçã«ãããŠãç»é¢ã³ã³ãã³ãããã£ããã£ããŠèšé²ããèœåã¯éåžžã«è²Žéãªãã®ãšãªã£ãŠããŸããé åçãªæè²ãã¥ãŒããªã¢ã«ã®äœæãæçãªè£œåãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãããã·ãŒã ã¬ã¹ãªãªã¢ãŒãã³ã©ãã¬ãŒã·ã§ã³ã®ä¿é²ãå ç¢ãªãã¯ãã«ã«ãµããŒãã®æäŸãŸã§ããã£ã¹ãã¬ã€é²ç»æ©èœã¯ä»ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠäžå¯æ¬ ãªèŠçŽ ã§ããScreen Capture APIã¯ãWebéçºè ããã®æ©èœãWebã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥çµ±åããããã®ã匷åã§æšæºåãããæ¹æ³ãæäŸããŸãã
Screen Capture APIãšã¯ïŒ
Screen Capture APIã¯ãWebã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã®ç»é¢ãŸãã¯ãã®äžéšã®ã³ã³ãã³ãã衚ããããªããŒã¿ã®ã¹ããªãŒã ã«ã¢ã¯ã»ã¹ã§ããããã«ãããã©ãŠã¶APIã§ããããåºç¯ãªæš©éãæã€ãã©ãŠã¶æ¡åŒµæ©èœãªã©ãå€ããå®å šæ§ãäœãããã°ãã°ãã©ãŠã¶åºæã®ã¢ãããŒããšã¯ç°ãªãããã®APIã¯ç»é¢ã³ã³ãã³ãããã£ããã£ããããã®ããå¶åŸ¡ãããå®å šãªæ¹æ³ãæäŸããŸããããã«ããããŠãŒã¶ãŒã¯ç¹å®ã®ãŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã«ç»é¢ã®èšé²ãæç€ºçã«èš±å¯ããããšãã§ãããã©ã€ãã·ãŒãšã»ãã¥ãªãã£ãåäžããŸãã
æ¬è³ªçã«ããã®APIã¯ç»é¢ããŠã£ã³ããŠããŸãã¯ã¿ãã衚ãMediaStream
ãªããžã§ã¯ããååŸããã¡ã«ããºã ãæäŸããŸãããã®MediaStream
ã¯ãç»é¢ã³ã³ãã³ãã®èšé²ããããªäŒè°ã§ã®ãªã¢ãŒãåå è
ãžã®ã¹ããªãŒãã³ã°ãããã«ã¯ã¢ã¯ã»ã·ããªãã£ç®çã§ã®åæãªã©ãããŸããŸãªç®çã«äœ¿çšã§ããŸãã
äž»ãªæ©èœãšæ§èœ
Screen Capture APIã¯ãéçºè ã«ãšã£ãŠå€ç®çã§åŒ·åãªããŒã«ãšãªãããã€ãã®äž»èŠãªæ©èœãèªã£ãŠããŸãïŒ
- ãŠãŒã¶ãŒã®åæïŒ APIã¯ãŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãæåªå ããŸããç»é¢ãã£ããã£ãéå§ããåã«ããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã«æç€ºçã«èš±å¯ãäžããå¿ èŠããããŸãããã®èš±å¯ã¯éåžžããã©ãŠã¶ã®ããã³ãããä»ããŠèŠæ±ããããŠãŒã¶ãŒã¯å ±æããç»é¢ããŠã£ã³ããŠããŸãã¯ã¿ããéžæã§ããŸãã
- æè»ãªãœãŒã¹éžæïŒ APIã¯ããŠãŒã¶ãŒããã£ããã£ããç¹å®ã®ãœãŒã¹ãéžæã§ããããã«ããŸããããã¯ãç»é¢å šäœãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãŠã£ã³ããŠããŸãã¯åäžã®ãã©ãŠã¶ã¿ããªã©ã§ãããã®ãã现ããå¶åŸ¡ã«ãããå¿ èŠãªã³ã³ãã³ãã®ã¿ãå ±æããããã©ã€ãã·ãŒã®æžå¿µãæå°éã«æããããŸãã
- é³å£°ãã£ããã£ïŒ APIã¯ãããªãšå ±ã«é³å£°ããã£ããã£ããããšããµããŒãããŠããŸããããã¯ããã¥ãŒããªã¢ã«ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãªã©ãèŠèŠãšé³å£°ã®äž¡æ¹ã®ã³ã³ããŒãã³ããå¿ èŠãšããé²ç»ãäœæããã®ã«ç¹ã«åœ¹ç«ã¡ãŸããé³å£°ã¯ãã·ã¹ãã ã®ãã€ã¯ããããŸãã¯ãã£ããã£ãããã¢ããªã±ãŒã·ã§ã³ãã¿ãããçŽæ¥ååŸã§ããŸãã
- èªå·±ãã£ããã£é²æ¢ïŒ APIã¯ããã£ããã£ããã¹ããªãŒã èªäœã衚瀺ããŠããã¿ãããã£ããã£ããéã®ãç¡éååž°ãã·ããªãªãé²ãã®ã«åœ¹ç«ã¡ãŸããããã«ãããããã©ãŒãã³ã¹ã®åé¡ãèŠèŠçãªãã£ãŒãããã¯ã«ãŒããé²ãããã®ã¡ã«ããºã ãæäŸãããŸãã
- ã¯ãã¹ãã©ãŠã¶äºææ§ïŒ å®è£ ã®è©³çްã¯è¥å¹²ç°ãªãå ŽåããããŸãããScreen Capture APIã¯ChromeãFirefoxãSafariãEdgeãªã©ã®äž»èŠãªã¢ãã³ãã©ãŠã¶ã§ãµããŒããããŠããŸãããã®åºç¯ãªãµããŒãã«ãããã¯ãã¹ãã©ãããã©ãŒã ã®Webã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®å®è¡å¯èœãªéžæè¢ãšãªããŸãã
æ¥çãã¢ããªã±ãŒã·ã§ã³ã暪æãããŠãŒã¹ã±ãŒã¹
Screen Capture APIã¯ãããŸããŸãªæ¥çãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã³ã§å¹ åºãå¯èœæ§ãåãéããŸãã以äžã«ãã®ä»£è¡šçãªäŸãããã€ãæããŸãïŒ
1. æè²ãã¯ãããžãŒïŒEdTechïŒ
EdTechã»ã¯ã¿ãŒã¯ã广çãªãªã³ã©ã€ã³åŠç¿ãä¿é²ããããŒã«ã«å€§ããäŸåããŠããŸããScreen Capture APIã¯ã以äžãäœæããããã«æŽ»çšã§ããŸãïŒ
- ã€ã³ã¿ã©ã¯ãã£ããªãã¥ãŒããªã¢ã«ïŒ ã€ã³ã¹ãã©ã¯ã¿ãŒã¯ããœãããŠã§ã¢ã®äœ¿ç𿹿³ãã³ãŒãã£ã³ã°æè¡ããŸãã¯ãã®ä»ã®è€éãªããã»ã¹ã宿Œããã¹ããããã€ã¹ãããã®ãããªãã¥ãŒããªã¢ã«ãäœæã§ããŸããç»é¢ãé²ç»ããªããé³å£°è§£èª¬ãæäŸããããšã§ãé åçã§æçãªåŠç¿äœéšãçã¿åºãããšãã§ããŸãã äŸïŒã€ã³ãã®ã³ãŒãã£ã³ã°ã€ã³ã¹ãã©ã¯ã¿ãŒããIDEã®ç»é¢é²ç»ã䜿çšããŠPythonããã°ã©ãã³ã°ã«é¢ãããã¥ãŒããªã¢ã«ãäœæããã
- ãªã¢ãŒãåŠç¿ãã©ãããã©ãŒã ïŒ APIããªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ã«çµ±åããããšã§ãåŠçãèªåã®äœæ¥ãèšé²ãããã£ãŒãããã¯ã®ããã«ã€ã³ã¹ãã©ã¯ã¿ãŒãšå ±æããããšãã§ããŸããããã¯ãã¢ãŒãããã¶ã€ã³ããšã³ãžãã¢ãªã³ã°ãªã©ãå®è·µçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãå¿ èŠãªç§ç®ã§ç¹ã«åœ¹ç«ã¡ãŸãã äŸïŒã€ã¿ãªã¢ã®ãã¶ã€ã³ã³ãŒã¹ã®åŠçãããã¶ã€ã³ãœãããŠã§ã¢ã䜿çšããŠããžã¿ã«ã¢ãŒãã¯ãŒã¯ãäœæããªããç»é¢ãé²ç»ããã
- ã¢ã¯ã»ã·ããªãã£ããŒã«ïŒ ãã£ããã£ãããç»é¢ã³ã³ãã³ããåæããŠããªã¢ã«ã¿ã€ã ã®ãã£ãã·ã§ã³ãããã¹ãèªã¿äžãæ©èœããŸãã¯é害ãæã€åŠçã®ããã®ãã®ä»ã®ã¢ã¯ã»ã·ããªãã£æ¯æŽãæäŸã§ããŸãã äŸïŒã«ããã®å€§åŠããèŽèŠé害ã®ããåŠçã®ããã«ãªã³ã©ã€ã³è¬çŸ©ã®ã©ã€ããã£ãã·ã§ã³ãæäŸããããã«ç»é¢ãã£ããã£ã䜿çšããã
2. ãªã¢ãŒãã³ã©ãã¬ãŒã·ã§ã³ãšã³ãã¥ãã±ãŒã·ã§ã³
仿¥ã®ãŸããŸã忣åããåŽååã«ãããŠã广çãªãªã¢ãŒãã³ã©ãã¬ãŒã·ã§ã³ã¯äžå¯æ¬ ã§ããScreen Capture APIã¯ä»¥äžãå¯èœã«ããŸãïŒ
- ãããªäŒè°ïŒ ãŠãŒã¶ãŒã¯ãããªäŒè°äžã«ç°¡åã«ç»é¢ãå ±æã§ããå ±åã§ã®ãã¬ãŒã³ããŒã·ã§ã³ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãåé¡è§£æ±ºã»ãã·ã§ã³ãä¿é²ããŸãã äŸïŒãã€ãã®ãããžã§ã¯ããããŒãžã£ãŒãããããžã§ã¯ãã®é²æã確èªããããã«ãç±³åœã𿥿¬ã®ããŒã ã¡ã³ããŒãšç»é¢ãå ±æããã
- ãªã¢ãŒããµããŒãïŒ ãã¯ãã«ã«ãµããŒããšãŒãžã§ã³ãã¯ãAPIã䜿çšããŠãŠãŒã¶ãŒã®ç»é¢ããªã¢ãŒãã§è¡šç€ºãããªã¢ã«ã¿ã€ã ã®æ¯æŽãæäŸã§ããŸããããã¯ããœãããŠã§ã¢ã®åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããè€éãªã¿ã¹ã¯ããŠãŒã¶ãŒã«æ¡å ããã®ã«ç¹ã«åœ¹ç«ã¡ãŸãã äŸïŒãªãŒã¹ãã©ãªã¢ã®ãœãããŠã§ã¢äŒç€Ÿãããã©ãžã«ã®é¡§å®¢ã®ãœãããŠã§ã¢ã€ã³ã¹ããŒã«åé¡ããªã¢ãŒãã§æ¯æŽããããã«ç»é¢ãã£ããã£ã䜿çšããã
- éåæã³ãã¥ãã±ãŒã·ã§ã³ïŒ ããŒã ã¯çãç»é¢ãã£ããã£ãèšé²ããŠããã°ã®èª¬æã解決çã®ææ¡ããŸãã¯ãã¶ã€ã³ã«é¢ãããã£ãŒãããã¯ãæäŸããé·ãã¡ãŒã«ã®ã¹ã¬ãããæç¢ºãªèŠèŠçã³ãã¥ãã±ãŒã·ã§ã³ã«çœ®ãæããããšãã§ããŸãã äŸïŒããŒã©ã³ãã®QAãšã³ãžãã¢ããæç¢ºãªåçŸæé ãå«ããã°ã¬ããŒããé²ç»ãããŠã¯ã©ã€ãã®éçºè ãšå ±æããã
3. ãœãããŠã§ã¢éçºãšãã¹ã
Screen Capture APIã¯ããœãããŠã§ã¢éçºããã³ãã¹ãã®ã¯ãŒã¯ãããŒã«äŸ¡å€ããããŒã«ãæäŸããŸãïŒ
- ãã°ã¬ããŒãïŒ éçºè ããã¹ã¿ãŒã¯ãAPIã䜿çšããŠãã°ãäºæããªãåäœãæç¢ºã«ç€ºãç»é¢ãã£ããã£ãèšé²ã§ããŸãããããã®é²ç»ããã°ã¬ããŒãã«æ·»ä»ããããšã§ãéçºè ã«è²Žéãªã³ã³ããã¹ããæäŸããåé¡ã®åçŸãšä¿®æ£ã«å¿ èŠãªæéãççž®ã§ããŸãã äŸïŒã¢ã«ãŒã³ãã³ã®ããŒã¿ãã¹ã¿ãŒãããœãããŠã§ã¢ã®äžå ·åã®ç»é¢ãã£ããã£ãé²ç»ãããã°ã¬ããŒãã«æ·»ä»ããã
- ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒãã¹ãïŒ APIã䜿çšããŠãç»é¢ãã£ããã£ãèšé²ããæåŸ ãããçµæãšæ¯èŒããããšã§ãUIãã¹ããèªååã§ããŸããããã«ãããéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®èŠèŠçãªãªã°ã¬ãã·ã§ã³ãäžæŽåãè¿ éã«ç¹å®ã§ããŸãã äŸïŒè±åœã®èªåãã¹ãã·ã¹ãã ããWebã¢ããªã±ãŒã·ã§ã³ã®UIãã¹ãã¹ã€ãŒãã®äžéšãšããŠç»é¢é²ç»ããã£ããã£ããã
- ã³ãŒãã¬ãã¥ãŒïŒ éçºè ã¯ç»é¢é²ç»ãå ±æããŠã³ãŒãã®å€æŽç¹ã説æããããæ°æ©èœã®åäœã宿Œãããããããšã§ãã³ãŒãã¬ãã¥ãŒã®å¹çãåäžãããããšãã§ããŸãã äŸïŒã·ã³ã¬ããŒã«ã®ã·ãã¢éçºè ãããžã¥ãã¢éçºè ã®ã³ãŒãã®åäœã宿Œããç»é¢é²ç»ãå ±æãããã£ãŒãããã¯ãæäŸããã
4. ã³ã³ãã³ãäœæãšããŒã±ãã£ã³ã°
ãã®APIã¯ãããŒã±ãã£ã³ã°ããã³ããã¢ãŒã·ã§ã³ç®çã§é åçã§æçãªã³ã³ãã³ããäœæããããã®åŒ·åãªããŒã«ãšãªãåŸãŸãïŒ
- 補åãã¢ã³ã¹ãã¬ãŒã·ã§ã³ïŒ äŒæ¥ã¯ã補åã®æ©èœãšå©ç¹ã玹ä»ããç»é¢ãã£ããã£ãèšé²ããããšã§ã説åŸåã®ãã補åãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãäœæã§ããŸãã äŸïŒãã©ã³ã¹ã®ãœãããŠã§ã¢äŒç€ŸãããœãããŠã§ã¢ã䜿çšããªããç»é¢ããã£ããã£ããææ°ã®ãœãããŠã§ã¢ãªãªãŒã¹ã®è£œåãã¢ãããªãäœæããã
- ããŒã±ãã£ã³ã°ãã¥ãŒããªã¢ã«ïŒ ããŒã±ã¿ãŒã¯ããŠãŒã¶ãŒã«è£œåããµãŒãã¹ã®äœ¿ç𿹿³ãæãããã¥ãŒããªã¢ã«ãããªãäœæã§ããŸãããããã®ãã¥ãŒããªã¢ã«ã¯ããšã³ã²ãŒãžã¡ã³ããé«ãã顧客ãæè²ãã顧客æºè¶³åºŠãåäžãããããã«äœ¿çšã§ããŸãã äŸïŒã«ããã®ããŒã±ãã£ã³ã°ããŒã ããèªç€Ÿã®ãªã³ã©ã€ã³ããŒã±ãã£ã³ã°ãã©ãããã©ãŒã ã®äœ¿ç𿹿³ã«é¢ãããã¥ãŒããªã¢ã«ãããªãäœæããã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ã³ã³ãã³ãïŒ çãé åçãªç»é¢ãã£ããã£ã䜿çšããŠã泚ç®ãéãããŠã§ããµã€ããã©ã³ãã£ã³ã°ããŒãžãžã®ãã©ãã£ãã¯ãä¿é²ãã説åŸåã®ãããœãŒã·ã£ã«ã¡ãã£ã¢ã³ã³ãã³ããäœæã§ããŸãã äŸïŒãã©ãžã«ã®ãœãŒã·ã£ã«ã¡ãã£ã¢ãããŒãžã£ãŒããèªç€Ÿã®ã¢ãã€ã«ã¢ããªã®æ°æ©èœã玹ä»ããçããããªãäœæããã
Screen Capture APIã®å®è£ ïŒå®è·µã¬ã€ã
以äžã«ãWebã¢ããªã±ãŒã·ã§ã³ã«Screen Capture APIãå®è£ ããããã®ã¹ããããã€ã¹ãããã¬ã€ãã瀺ããŸãïŒ
ã¹ããã1ïŒãŠãŒã¶ãŒã®èš±å¯ãèŠæ±ãã
æåã®ã¹ãããã¯ããŠãŒã¶ãŒã«ç»é¢ããã£ããã£ããèš±å¯ãèŠæ±ããããšã§ããããã¯navigator.mediaDevices.getDisplayMedia()
ã¡ãœããã䜿çšããŠè¡ããŸãããã®ã¡ãœããã¯ããŠãŒã¶ãŒãèš±å¯ãäžããå Žåã¯MediaStream
ãªããžã§ã¯ãã§è§£æ±ºãããPromiseãè¿ãããŠãŒã¶ãŒãèš±å¯ãæåŠããå Žåããšã©ãŒãçºçããå Žåã¯æåŠãããŸãã
async function startCapture() {
try {
const stream = await navigator.mediaDevices.getDisplayMedia({
video: true,
audio: true // Optional: Request audio capture as well
});
// Process the stream (e.g., display in a video element or record)
processStream(stream);
} catch (err) {
console.error("Error: " + err);
}
}
éèŠãªèæ ®äºé ïŒ
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒ ãªãç»é¢ããã£ããã£ããå¿ èŠãããã®ãããã£ããã£ããã³ã³ãã³ãã§äœãããã®ãããŠãŒã¶ãŒã«æç¢ºã«èª¬æããŸããæç¢ºã§ç°¡æœãªèª¬æã¯ããŠãŒã¶ãŒãèš±å¯ãäžããå¯èœæ§ãé«ããŸãã
- ãšã©ãŒãã³ããªã³ã°ïŒ ãŠãŒã¶ãŒãèš±å¯ãæåŠããå Žåããšã©ãŒãçºçããå Žåã«ãé©åã«åŠçããããã®å ç¢ãªãšã©ãŒãã³ããªã³ã°ãå®è£ ããŸãããŠãŒã¶ãŒã«åé¡ç¹ãçè§£ããŠãããããã«ãæçãªãšã©ãŒã¡ãã»ãŒãžãæäŸããŸãã
- ã»ãã¥ãªãã£ïŒ åžžã«ãã£ããã£ããç»é¢ã³ã³ãã³ããå®å šã«åãæ±ããŸããæ©å¯æ å ±ãä¿åããããå®å šã§ãªãæ¥ç¶ã§éä¿¡ãããããªãã§ãã ããã
ã¹ããã2ïŒMediaStreamãåŠçãã
MediaStream
ãªããžã§ã¯ããååŸããããããŸããŸãªç®çã«äœ¿çšã§ããŸãã以äžã«äžè¬çãªãŠãŒã¹ã±ãŒã¹ãããã€ã瀺ããŸãïŒ
- ãããªèŠçŽ ã§ã¹ããªãŒã ã衚瀺ããïŒ
function processStream(stream) { const videoElement = document.getElementById('myVideoElement'); videoElement.srcObject = stream; videoElement.play(); }
ããã«ãããWebããŒãžã®ãããªèŠçŽ ã«ãã£ããã£ããç»é¢ã³ã³ãã³ãã衚瀺ã§ããŸãã
- ã¹ããªãŒã ãé²ç»ããïŒ
let mediaRecorder; let recordedChunks = []; function processStream(stream) { mediaRecorder = new MediaRecorder(stream); mediaRecorder.ondataavailable = (event) => { recordedChunks.push(event.data); }; mediaRecorder.onstop = () => { const blob = new Blob(recordedChunks, { type: 'video/webm' }); const url = URL.createObjectURL(blob); // Download the video (or send to server) downloadVideo(url); recordedChunks = []; // Reset for next recording }; mediaRecorder.start(); } function stopCapture() { mediaRecorder.stop(); }
ããã«ããããã£ããã£ããç»é¢ã³ã³ãã³ããé²ç»ãããããªãã¡ã€ã«ãšããŠä¿åã§ããŸããäžèšã®äŸã§ã¯ã
MediaRecorder
APIã䜿çšããŠã¹ããªãŒã ãé²ç»ããããŠã³ããŒãå¯èœãªãããªãã¡ã€ã«ãäœæããŠããŸãã - ã¹ããªãŒã ãã¹ããªãŒãã³ã°ããïŒ
WebRTCãWebSocketsãªã©ã®æè¡ã䜿çšããŠããã£ããã£ããç»é¢ã³ã³ãã³ãããªã¢ãŒããµãŒããŒã«ã¹ããªãŒãã³ã°ã§ããŸããããã¯ããããªäŒè°ããªã¢ãŒããµããŒãã¢ããªã±ãŒã·ã§ã³ã«åœ¹ç«ã¡ãŸãã
ã¹ããã3ïŒãã£ããã£ã忢ãã
äžèŠã«ãªã£ããç»é¢ãã£ããã£ã忢ããããšãéèŠã§ããããã¯MediaStream
ãªããžã§ã¯ãã忢ããããšã§è¡ããŸããããã«ãããç»é¢ãã£ããã£APIã䜿çšããŠãããªãœãŒã¹ãè§£æŸããããŠãŒã¶ãŒã®ç»é¢ãäžå¿
èŠã«ãã£ããã£ããç¶ããã®ãé²ããŸãã
function stopCapture() {
stream.getTracks().forEach(track => track.stop());
}
ãã¹ããã©ã¯ãã£ã¹ïŒ
- æç¢ºãªã忢ããã¿ã³ãŸãã¯ã¡ã«ããºã ãæäŸããïŒ ãŠãŒã¶ãŒããã€ã§ãç°¡åã«ç»é¢ãã£ããã£ã忢ã§ããããã«ããŸãã
- ãŠãŒã¶ãŒãããŒãžããé¢ãããšãã«èªåçã«ãã£ããã£ã忢ããïŒ ããã«ããããŠãŒã¶ãŒã®ç¥ããªããã¡ã«ããã¯ã°ã©ãŠã³ãã§ç»é¢ãã£ããã£ãç¶ç¶ããã®ãé²ããŸãã
window.onbeforeunload
ã€ãã³ãã䜿çšããŠããŠãŒã¶ãŒãããŒãžãé¢ããããšããŠããããšãæ€åºã§ããŸãã - ãªãœãŒã¹ãè§£æŸããïŒ ãã£ããã£ã忢ããåŸã
MediaStream
ãªããžã§ã¯ããMediaRecorder
ãªããžã§ã¯ããªã©ãAPIã䜿çšãããã¹ãŠã®ãªãœãŒã¹ãè§£æŸããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
Screen Capture APIã¯ã»ãã¥ãªãã£ã念é ã«èšèšãããŠããŸãããæœåšçãªã»ãã¥ãªãã£ãªã¹ã¯ãèªèããé©åãªä¿è·çãå®è£ ããããšãéèŠã§ãïŒ
- HTTPSïŒ Screen Capture APIãæ©èœããã«ã¯ãå®å šãªã³ã³ããã¹ãïŒHTTPSïŒãå¿ èŠã§ããããã«ãããäžéè æ»æãé²ãããã£ããã£ãããç»é¢ã³ã³ãã³ããå®å šã«éä¿¡ãããããšãä¿èšŒãããŸãã
- ãŠãŒã¶ãŒã®åæïŒ ç»é¢ããã£ããã£ããåã«ãå¿ ããŠãŒã¶ãŒã®æç¢ºãªåæãåŸãŠãã ããããªãç»é¢ããã£ããã£ããå¿ èŠãããã®ãããã£ããã£ããã³ã³ãã³ãã§äœãããã®ãããŠãŒã¶ãŒã«æç¢ºã«èª¬æããŸãã
- ããŒã¿ãã³ããªã³ã°ïŒ ãã£ããã£ããç»é¢ã³ã³ãã³ãã¯å®å šã«åãæ±ããŸããæ©å¯æ å ±ãä¿åããããå®å šã§ãªãæ¥ç¶ã§éä¿¡ãããããªãã§ãã ããããã£ããã£ããã³ã³ãã³ããžã®äžæ£ã¢ã¯ã»ã¹ãé²ãããã«ãé©åãªã¢ã¯ã»ã¹å¶åŸ¡ãå®è£ ããŸãã
- æš©éãæå°éã«ããïŒ ã¿ã¹ã¯ãéæããããã«å¿ èŠãªæå°éã®æš©éã®ã¿ãèŠæ±ããŸããäŸãã°ãåäžã®ãã©ãŠã¶ã¿ãããã£ããã£ããã ãã§ããå Žåã¯ãç»é¢å šäœã®ãã£ããã£æš©éãèŠæ±ããªãã§ãã ããã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒ ã¢ããªã±ãŒã·ã§ã³ã®å®æçãªã»ãã¥ãªãã£ç£æ»ã宿œããŠãæœåšçãªè匱æ§ãç¹å®ãã察åŠããŸãã
ã°ããŒãã«ãªã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
Screen Capture APIãå®è£ ããéã«ã¯ãé害ãæã€ãŠãŒã¶ãŒã®ããŒãºãèæ ®ããããšãéèŠã§ãã以äžã«ãç»é¢ãã£ããã£ã¢ããªã±ãŒã·ã§ã³ãããã¢ã¯ã»ã·ãã«ã«ããããã®ããã€ãã®æ¹æ³ã瀺ããŸãïŒ
- ãã£ãã·ã§ã³ïŒ ç»é¢ãã£ããã£å ã®ãã¹ãŠã®é³å£°ã³ã³ãã³ãã«ãã£ãã·ã§ã³ãæäŸããŸããããã«ãããèŽèŠé害ã®ãããŠãŒã¶ãŒãã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããèªåé³å£°èªèïŒASRïŒæè¡ã䜿çšããŠãã£ãã·ã§ã³ãçæããããæåã§ãã£ãã·ã§ã³ãäœæããããšãã§ããŸãã
- ãã©ã³ã¹ã¯ãªããïŒ ç»é¢ãã£ããã£å ã®ãã¹ãŠã®ãããªã³ã³ãã³ãã«ãã©ã³ã¹ã¯ãªãããæäŸããŸããããã«ãããã³ã³ãã³ããèŠèŽãããããèªãããšã奜ããŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
- ããŒããŒãããã²ãŒã·ã§ã³ïŒ ç»é¢ãã£ããã£ã¢ããªã±ãŒã·ã§ã³å ã®ãã¹ãŠã®ã€ã³ã¿ã©ã¯ãã£ãèŠçŽ ãããŒããŒãããã²ãŒã·ã§ã³ã§ã¢ã¯ã»ã¹ã§ããããã«ããŸããããã«ãããããŠã¹ã䜿çšã§ããªããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
- ã¹ã¯ãªãŒã³ãªãŒããŒäºææ§ïŒ ç»é¢ãã£ããã£ã¢ããªã±ãŒã·ã§ã³ãã¹ã¯ãªãŒã³ãªãŒããŒãšäºææ§ãããããšã確èªããŸããããã«ãããèŠèŠé害ã®ãããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããARIA屿§ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®æ§é ãšã³ã³ãã³ãã«é¢ããè¿œå æ å ±ãã¹ã¯ãªãŒã³ãªãŒããŒã«æäŸããŸãã
- è²ã®ã³ã³ãã©ã¹ãïŒ ããã¹ããšèæ¯èŠçŽ ã®éã«ååãªè²ã®ã³ã³ãã©ã¹ãã䜿çšããŠãäœèŠåã®ãŠãŒã¶ãŒãã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
é«åºŠãªãã¯ããã¯ãšæé©å
åºæ¬çãªæ©èœãè¶ ããŠãScreen Capture APIã®å®è£ ã匷åã§ããããã€ãã®é«åºŠãªãã¯ããã¯ããããŸãïŒ
- é åãã£ããã£ïŒ æ®éçã«ãµããŒããããŠããããã§ã¯ãããŸããããäžéšã®ãã©ãŠã¶ã§ã¯ç»é¢ã®ç¹å®é åã®ã¿ããã£ããã£ã§ãããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãããã«åŒ·åããŸãã
- ãã¬ãŒã ã¬ãŒãå¶åŸ¡ïŒ ãã£ããã£ããã¹ããªãŒã ã®ãã¬ãŒã ã¬ãŒãã調æŽããããšã§ãç¹ã«ã¹ããªãŒãã³ã°ã·ããªãªã«ãããŠãããã©ãŒãã³ã¹ãæé©åãã垯åå¹ ã®æ¶è²»ãåæžã§ããŸãã
- è§£å床管çïŒ ãããã¯ãŒã¯ç¶æ³ãããã€ã¹ã®èœåã«åºã¥ããŠãã£ããã£ããã¹ããªãŒã ã®è§£å床ãåçã«èª¿æŽããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã確ä¿ããŸãã
- èæ¯ã®ãŒãã/眮æïŒ ãããªäŒè°ã¢ããªã±ãŒã·ã§ã³ã«èæ¯ã®ãŒãããçœ®ææ©èœãçµ±åãããã©ã€ãã·ãŒãšãããã§ãã·ã§ããªãºã ãé«ããŸããããã«ã¯éåžžããããªã¹ããªãŒã ã®ãµãŒããŒãµã€ãåŠçã䌎ããŸãã
Screen Capture APIã®æªæ¥
Screen Capture APIã¯çµ¶ããé²åããŠãããæ°ããªããŒãºã«å¯Ÿå¿ããããã«æ°ããæ©èœãæ§èœã远å ãããŠããŸããå°æ¥ã®å¯èœæ§ã®ããéçºã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- ã»ãã¥ãªãã£ã®åŒ·åïŒ æ°ããªè åšã«å¯Ÿå¿ãããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããããã®ã»ãã¥ãªãã£æ©èœã®ãããªã匷åã
- ããã©ãŒãã³ã¹ã®åäžïŒ ç¹ã«äœé»åããã€ã¹ã§ã®APIã®ããã©ãŒãã³ã¹ãåäžãããããã®æé©åã
- ãã©ãããã©ãŒã ãµããŒãã®æ¡å€§ïŒ ããŸããŸãªãã©ãããã©ãŒã ãããã€ã¹ã§ã®APIã®ããåºç¯ãªãµããŒãã
- ãªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³æ©èœïŒ ããã€ã³ã¿ã©ã¯ãã£ãã§å ±åäœæ¥ãå¯èœãªç»é¢å ±æäœéšãå®çŸããããã®ããªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³ããŒã«ãšã®çµ±åã
- AIæèŒæ©èœïŒ èªåã³ã³ãã³ãæ€åºããªããžã§ã¯ãèªèãææ åæãªã©ã®AIæèŒæ©èœãšã®çµ±åã
çµè«
Screen Capture APIã¯ãWebéçºè ãå®å šã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªæ¹æ³ã§ãã£ã¹ãã¬ã€é²ç»æ©èœãã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããããã«ããã匷åã§å€ç®çãªããŒã«ã§ãããã®æ©èœããŠãŒã¹ã±ãŒã¹ãã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãã¢ã¯ã»ã·ããªãã£èŠä»¶ãçè§£ããããšã§ãéçºè ã¯ãã®APIãæŽ»çšããŠãå¹ åºãæ¥çãã¢ããªã±ãŒã·ã§ã³ã«ããã£ãŠããŠãŒã¶ãŒã«ãšã£ãŠé åçã§æçããã€ã¢ã¯ã»ã¹ããããäœéšãåµé ã§ããŸããAPIãé²åãç¶ããã«ã€ããŠããªã³ã©ã€ã³ã³ãã¥ãã±ãŒã·ã§ã³ãã³ã©ãã¬ãŒã·ã§ã³ãæè²ã®æªæ¥ã圢äœãäžã§ããŸããŸãéèŠãªåœ¹å²ãæããããšã¯ééããããŸããã
æè²ãã©ãããã©ãŒã ããªã¢ãŒãã³ã©ãã¬ãŒã·ã§ã³ããŒã«ããŸãã¯ãœãããŠã§ã¢ãã¹ãã¢ããªã±ãŒã·ã§ã³ã®ããããæ§ç¯ããŠããå Žåã§ããScreen Capture APIã¯æ°ããªå¯èœæ§ãè§£ãæŸã¡ãäžçäžã®ãŠãŒã¶ãŒã«é©æ°çãªãœãªã¥ãŒã·ã§ã³ãæäŸããã®ã«åœ¹ç«ã¡ãŸãããã®å¯èœæ§ãåãå ¥ããããšã§ãããžã¿ã«ã©ã³ãã¹ã±ãŒãã®çµ¶ããé²åããããŒãºã«å¿ããã説åŸåã®ããé åçãªäœéšãåµé ããããã®æºåãæŽãã§ãããã