Presentation APIã®åãæŽ»çšããåæããããã«ãã¹ã¯ãªãŒã³ã³ã³ãã³ãäœéšãäžçäžã®èŠèŽè ã«æäŸããæ¹æ³ãæ¢ããŸããæ©èœããŠãŒã¹ã±ãŒã¹ãå®è£ æ¹æ³ã«ã€ããŠåŠã³ãŸãããã
Presentation APIã§å®çŸããã·ãŒã ã¬ã¹ãªãã«ãã¹ã¯ãªãŒã³äœéš
仿¥ã®çžäºæ¥ç¶ãããäžçã§ã¯ããŠãŒã¶ãŒã¯è€æ°ã®ããã€ã¹ã§åæã«ããžã¿ã«ã³ã³ãã³ããæäœããããšããŸããŸãæåŸ ããŠããŸããäŒè°å®€ã§ããŒãPCãã倧åãã£ã¹ãã¬ã€ã«ãã¬ãŒã³ããŒã·ã§ã³ããã£ã¹ãããããã¹ããŒãTVã«ãããªã¹ããªãŒã ããã©ãŒãªã³ã°ãããããšã³ã²ãŒãžã¡ã³ãåäžã®ããã«ã»ã«ã³ãã¹ã¯ãªãŒã³ã«ã€ã³ã¿ã©ã¯ãã£ããªã³ã³ãã³ãã衚瀺ããããšãã·ãŒã ã¬ã¹ãªãã«ãã¹ã¯ãªãŒã³äœéšãžã®éèŠã¯ææ°é¢æ°çã«é«ãŸã£ãŠããŸããæå 端ã®Webæšæºã§ããPresentation APIã¯ãéçºè ãç°ãªãã¹ã¯ãªãŒã³éã§ã³ã³ãã³ã衚瀺ãå¶åŸ¡ã»ç®¡çããæšæºåãããæ¹æ³ãæäŸããããšã§ããã®éèŠã«å¿ããããšãå¯èœã«ããŸãã
Presentation APIãšã¯ïŒ
Presentation APIã¯ãã¢ããªã±ãŒã·ã§ã³ããããžã§ã¯ã¿ãŒãã¹ããŒãTVããã®ä»ã®æ¥ç¶ãããã¹ã¯ãªãŒã³ïŒãã°ãã°ãã»ã«ã³ãã¹ã¯ãªãŒã³ããããã£ã¹ãã£ã³ã°ããã€ã¹ããšåŒã°ããïŒãªã©ãå©çšå¯èœãªãã£ã¹ãã¬ã€ããã€ã¹ãçºèŠããæäœã§ããããã«ããWebæšæºã§ããããã«ãããWebã¢ããªã±ãŒã·ã§ã³ã¯ãªã¢ãŒãã¹ã¯ãªãŒã³äžã§ãã¬ãŒã³ããŒã·ã§ã³ãéå§ãã衚瀺ãããã³ã³ãã³ããå¶åŸ¡ã§ãããã¬ãŒã³ããŒã·ã§ã³ã®å¶åŸ¡ãšã³ã³ãã³ãã®ã¬ã³ããªã³ã°èªäœã广çã«åé¢ããããšãã§ããŸãã
ãã®äžæ žã«ãããŠãPresentation APIã¯æ¢åã®ãããã¯ãŒã¯ãããã³ã«ãšããã€ã¹çºèŠã¡ã«ããºã ãæŽ»çšããŠãäºææ§ã®ããã¹ã¯ãªãŒã³ãç¹å®ããŸããã¹ã¯ãªãŒã³ãç¹å®ããããšãAPIã¯ä»¥äžã®ããã®ã¡ãœãããæäŸããŸãïŒ
- å©çšå¯èœãªãã¬ãŒã³ããŒã·ã§ã³ããã€ã¹ã®çºèŠïŒAPIã¯ããŒã«ã«ãããã¯ãŒã¯ãã¹ãã£ã³ããŠãPresentation APIããµããŒãããããã€ã¹ãèŠã€ããããšãã§ããŸãã
- ãã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ã®éå§ïŒéçºè ã¯éžæããããã€ã¹ã§æ°ãããã¬ãŒã³ããŒã·ã§ã³ãéå§ã§ããŸããéåžžã¯ç¹å®ã®URLã«ããã²ãŒããããããšã§è¡ããŸãã
- ãã¬ãŒã³ããŒã·ã§ã³ã³ã³ãã³ãã®å¶åŸ¡ïŒã»ãã·ã§ã³ã確ç«ããããšããã©ã€ããªããã€ã¹ïŒäŸïŒããŒãPCãæºåž¯é»è©±ïŒã¯ã»ã«ã³ããªã¹ã¯ãªãŒã³ã«ã³ãã³ããéä¿¡ããŠãã³ã³ãã³ãã®å€æŽãã¡ãã£ã¢ã®åç/äžæåæ¢ãæ å ±ã®æŽæ°ãè¡ãããšãã§ããŸãã
- ã»ãã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã€ãã³ãã®åŠçïŒAPIã¯ãã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ã®éå§ãçµäºããšã©ãŒã¹ããŒãã管çããã¡ã«ããºã ãæäŸããŸãã
ãã®åŒ·åãªæ©èœã«ããããŠãŒã¶ãŒã®ãã©ã€ããªããã€ã¹ãããã倧ããã¢ã¯ã»ã¹ããããã¹ã¯ãªãŒã³ã«è¡šç€ºãããã³ã³ãã³ãã®ãªã¢ãŒãã³ã³ãããŒã«ãšããŠæ©èœããããªããã§ã€ã³ã¿ã©ã¯ãã£ããªäœéšãå¯èœã«ãªããŸãã
ãªããã«ãã¹ã¯ãªãŒã³ã§ã®ã³ã³ãã³ãé ä¿¡ãéèŠãªã®ãïŒ
广çãªãã«ãã¹ã¯ãªãŒã³ã§ã®ã³ã³ãã³ãé ä¿¡ã®å©ç¹ã¯åºç¯å²ã«åã³ãããŸããŸãªæ¥çããŠãŒã¶ãŒã·ããªãªã«åœ±é¿ãäžããŸãïŒ
1. ãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããšã€ã³ã¿ã©ã¯ãã£ããã£ã®åäž
ãŠãŒã¶ãŒãå人ããã€ã¹ããæäœãå¶åŸ¡ãè¡ãã€ã€ããã倧ããªã¹ã¯ãªãŒã³ã«ã³ã³ãã³ãã衚瀺ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã¯ããæ²¡å ¥æã®ããé åçãªäœéšãåµåºã§ããŸããããã¯ç¹ã«ä»¥äžã®åéã§äŸ¡å€ããããŸãïŒ
- ã€ã³ã¿ã©ã¯ãã£ããªãã¬ãŒã³ããŒã·ã§ã³ïŒçºè¡šè ã¯ã¡ã€ã³ã¹ã¯ãªãŒã³ã§ã¹ã©ã€ããå ±æããèŠèŽè ã¯èªåã®é»è©±ã§æç¥šã«çãããã質åãããããè£è¶³è³æã«ã¢ã¯ã»ã¹ãããããŠåå ã§ããŸãã
- æè²ãã©ãããã©ãŒã ïŒåŠçã¯ã¡ã€ã³ã¹ã¯ãªãŒã³ã§è¬çŸ©ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãèŠãªãããèªåã®ã¿ãã¬ããã§ã€ã³ã¿ã©ã¯ãã£ããªã¯ã€ãºãããŒãã«ã¢ã¯ã»ã¹ã§ããŸãã
- ã²ãŒã ãšãšã³ã¿ãŒãã€ã¡ã³ãïŒãã«ããã¬ã€ã€ãŒã²ãŒã ã§ã¯ãã»ã«ã³ãã¹ã¯ãªãŒã³ãå人æ å ±ãã³ã³ãããŒã«ã®ããã«æŽ»çšããã²ãŒã äœéšãåäžãããããšãã§ããŸãã
2. ã¢ã¯ã»ã·ããªãã£ãšã€ã³ã¯ã«ãŒã·ããã£ã®æ¹å
ãã«ãã¹ã¯ãªãŒã³æŠç¥ã¯ãäžçäžã®èŠèŽè ã«å¯Ÿããã¢ã¯ã»ã·ããªãã£ãå€§å¹ ã«åäžãããããšãã§ããŸãïŒ
- èšèªãªãã·ã§ã³ïŒã»ã«ã³ããªã¹ã¯ãªãŒã³ã®ã³ã³ãã³ããè€æ°ã®èšèªã§è¡šç€ºãããã©ã€ããªãã£ã¹ãã¬ã€ãä¹±éã«ããããšãªãã倿§ãªåœéçãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ã§ããŸãã
- ãã©ã³ããµã€ãºãšå¯èªæ§ïŒãŠãŒã¶ãŒã¯å人ããã€ã¹ã§ãã©ã³ããµã€ãºãã³ã³ãã©ã¹ãã調æŽããŠå¯èªæ§ãåäžãããããšãã§ããç¹ã«èŠèŠé害ãæã€åäººã«æçã§ãã
- èªç¥è² è·ã®è»œæžïŒç¹å®ã®æ å ±ãã³ã³ãããŒã«ãã»ã«ã³ãã¹ã¯ãªãŒã³ã«ãªãããŒãããããšã§ããã©ã€ããªãã£ã¹ãã¬ã€ã¯çŠç¹ãçµããå§åãããããšãå°ãªããªããŸãã
3. ãã¯ãã«ãªããžã¿ã«ãµã€ããŒãžãœãªã¥ãŒã·ã§ã³
Presentation APIã¯ããžã¿ã«ãµã€ããŒãžã«ãšã£ãŠç»æçãªãã®ã§ãïŒ
- åçãªã³ã³ãã³ãæŽæ°ïŒå ¬å ±ã®ã¹ã¯ãªãŒã³ïŒäŸïŒå°å£²åºã空枯ãã€ãã³ãäŒå ŽïŒã«è¡šç€ºãããã³ã³ãã³ãããäžå€®ã®ã³ã³ãããŒã«ããã«ãããå€ãã®å ŽåWebã¢ããªã±ãŒã·ã§ã³ãä»ããŠãªã¢ã«ã¿ã€ã ã§æŽæ°ã§ããŸãã
- ããŒãœãã©ã€ãºãããäœéšïŒé¡§å®¢ãåºå ãé²èЧäžã«ãèªåã®æºåž¯é»è©±ã®ãã€ã€ã«ãã£ã¢ããªãè¿ãã®ãã£ã¹ãã¬ã€ã«ããŒãœãã©ã€ãºããããªãã¡ãŒãè£œåæ å ±ã衚瀺ããããããªå°å£²åºãæ³åããŠã¿ãŠãã ããã
- ã€ã³ã¿ã©ã¯ãã£ãããªã¹ã¯ïŒããªã¹ã¯ã¯APIãæŽ»çšããŠæ©èœããŠãŒã¶ãŒã®ããã€ã¹ã«æ¡åŒµããããªã¹ã¯èªäœã«ã¿ããã¹ã¯ãªãŒã³ãå¿ èŠãšããã«ããã©ã€ããŒããªå ¥åãè€éãªæäœãå¯èœã«ããŸãã
4. å¹ççãªã³ã©ãã¬ãŒã·ã§ã³ãšãã¬ãŒã³ããŒã·ã§ã³
ããžãã¹ãåŠè¡ã®å Žã«ãããŠãPresentation APIã¯ã³ã³ãã³ãå ±æãå¹çåããŸãïŒ
- ã·ãŒã ã¬ã¹ãªäŒè°å®€ã§ã®ãã¬ãŒã³ããŒã·ã§ã³ïŒçºè¡šè ã¯é¢åãªã±ãŒãã«ãè€éãªèšå®ãªãã«ãããŒãPCããäŒè°å®€ã®ã¡ã€ã³ãã£ã¹ãã¬ã€ã«ç°¡åã«ç»é¢ããã£ã¹ãã§ããŸãã
- ãªã¢ãŒãã³ã©ãã¬ãŒã·ã§ã³ïŒå°ççã«ç°ãªãå Žæã«ããããŒã ããã¬ãŒã³ããŒã·ã§ã³ãåæãããããšãã§ããç©ççãªéšå±ã«ããåå è ã¯å€§åã¹ã¯ãªãŒã³ã§ããªã¢ãŒãã®åå è ã¯èªåã®ããã€ã¹ã§é²èЧã§ããŸãã
Presentation APIã®ä»çµã¿ïŒæè¡æŠèŠ
Presentation APIã¯ããã¬ãŒã³ããŒã·ã§ã³ãšã³ããã€ã³ããçºèŠãå¶åŸ¡ããããã®å ±éã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããããšã«ãã£ãŠæ©èœããŸããéåžžã2ã€ã®äž»èŠã³ã³ããŒãã³ããé¢äžããŸãïŒ
- ãã¬ãŒã³ã¿ãŒïŒããã¯ãã¬ãŒã³ããŒã·ã§ã³ãéå§ãå¶åŸ¡ããããã€ã¹ã§ãïŒäŸïŒããŒãPCãã¹ããŒããã©ã³ãã¿ãã¬ããïŒãPresentation APIã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã
- ãã¬ãŒã³ããŒã·ã§ã³ã¬ã·ãŒããŒïŒããã¯ã³ã³ãã³ãã衚瀺ããããã€ã¹ã§ãïŒäŸïŒã¹ããŒãTVããããžã§ã¯ã¿ãŒãå¥ã®ã³ã³ãã¥ãŒã¿ïŒããã¬ãŒã³ããŒã·ã§ã³ã³ã³ãã³ããåä¿¡ããŠè¡šç€ºã§ããWebã¢ããªã±ãŒã·ã§ã³ãŸãã¯å°çšã¯ã©ã€ã¢ã³ããå®è¡ããŸãã
çºèŠããã»ã¹ã¯ãWebRTCã®ãaddstreamãAPIã®ãããªãããã³ã«ãããã¬ãŒã³ããŒã·ã§ã³ã¬ã·ãŒããŒããã€ã¹ã«ãã£ãŠå®è£ ãããç¹å®ã®ããã€ã¹çºèŠã¡ã«ããºã ïŒäŸïŒDIALãCast ConnectããŸãã¯Miracastæ¡åŒµæ©èœïŒã«äŸåããããšããããããŸãã
Presentation APIã«ãã£ãŠæäŸãããäž»èŠãªã€ã³ã¿ãŒãã§ãŒã¹ãšã¡ãœããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
navigator.presentation.getAvailability()
ïŒãã¬ãŒã³ããŒã·ã§ã³ããã€ã¹ãçŸåšå©çšå¯èœãã©ããã瀺ãããŒã«å€ã§è§£æ±ºãããPromiseãè¿ããŸããnavigator.presentation.requestSession()
ïŒéžæããããã€ã¹ã§æ°ãããã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ãéå§ãããªã¯ãšã¹ããéå§ããŸãããã®ã¡ãœããã¯ãã¿ãŒã²ããã®ãã¬ãŒã³ããŒã·ã§ã³URLãç¹å®ã®ããã€ã¹ãæå®ãããªãã·ã§ã³ãåãããšãã§ããŸããnavigator.presentation.sessions
ïŒãã¹ãŠã®ã¢ã¯ãã£ããªãã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ã®ã³ã¬ã¯ã·ã§ã³ãPresentationSession
ãªããžã§ã¯ãïŒã¢ã¯ãã£ããªãã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ã衚ãããããå¶åŸ¡ããããã®ã¡ãœãããæäŸããŸããäŸãã°ãã¬ã·ãŒããŒã«ããŒã¿ãéä¿¡ããããã®send()
ããã»ãã·ã§ã³ãçµäºããããã®close()
ãªã©ã§ãã
ãã¬ãŒã³ã¿ãŒãšã¬ã·ãŒããŒéã®éä¿¡ã¯ãéåžžãããã¯ãŒã¯ãä»ããŠè¡ããããªã¢ã«ã¿ã€ã ã®ã¡ãã»ãŒãžäº€æã«ã¯WebSocketsããã䜿çšãããŸãã
Presentation APIã®å®è£ ïŒã¹ããããã€ã¹ãããã¬ã€ã
Presentation APIã䜿çšããŠãã«ãã¹ã¯ãªãŒã³äœéšãå®è£ ããã«ã¯ããã¬ãŒã³ã¿ãŒã¢ããªã±ãŒã·ã§ã³ãšã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ãäœæããå¿ èŠããããŸãã
ã¹ããã1ïŒãã¬ãŒã³ããŒã·ã§ã³ã¬ã·ãŒããŒã®éçº
ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã¯ãã³ã³ãã³ãã衚瀺ãããã¬ãŒã³ã¿ãŒããã®ã³ãã³ãããªãã¹ã³ãã責任ããããŸããããã¯æ¬è³ªçã«ããã¬ãŒã³ããŒã·ã§ã³ããŒã¿ãåä¿¡ããŠè§£éããæ¹æ³ãç¥ã£ãŠããWebããŒãžãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã§ãã
åºæ¬çãªã¬ã·ãŒããŒã¯æ¬¡ã®ããã«ãªããŸãïŒ
// receiver.js
// Register the receiver application
navigator.presentation.receiver.connect()
.then(session => {
console.log('Presentation session connected!');
// Listen for messages from the presenter
session.addEventListener('message', event => {
console.log('Message from presenter:', event.data);
// Update the UI based on received data
document.getElementById('content').innerHTML = event.data;
});
// Handle session disconnection
session.addEventListener('close', () => {
console.log('Presentation session closed.');
// Reset UI or perform cleanup
});
})
.catch(error => {
console.error('Error connecting presentation session:', error);
});
ã¬ã·ãŒããŒããŒãžïŒäŸïŒreceiver.html
ïŒã«ã¯ãéåžžã³ã³ãã³ãã衚瀺ããããã®èŠçŽ ããããŸãïŒ
<!DOCTYPE html>
<html>
<head>
<title>Presentation Receiver</title>
</head>
<body>
<div id="content">Waiting for presentation content...</div>
<script src="receiver.js"></script>
</body>
</html>
泚ïŒã¬ã·ãŒããŒæ¥ç¶ã®æ£ç¢ºãªå®è£ ã¯ãåºç€ãšãªããã£ã¹ãã£ã³ã°æè¡ããã©ãããã©ãŒã ã«ãã£ãŠç°ãªãå ŽåããããŸããäŸãã°ãGoogle Castã§ã¯ãç¹å®ã®ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ãGoogleã«ç»é²ããå¿ èŠããããŸãã
ã¹ããã2ïŒãã¬ãŒã³ããŒã·ã§ã³ãã¬ãŒã³ã¿ãŒã®éçº
ãã¬ãŒã³ã¿ãŒã¢ããªã±ãŒã·ã§ã³ã¯ããã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ãéå§ããã¬ã·ãŒããŒã«ããŒã¿ãéä¿¡ããŸãã
åºæ¬çãªãã¬ãŒã³ã¿ãŒã®å®è£ ïŒ
// presenter.js
const presentationRequest = new PresentationRequest([new Presentation('', 'receiver.html')]); // Replace with actual receiver URL if needed
const startPresentationButton = document.getElementById('startPresentation');
const sendContentButton = document.getElementById('sendContent');
const contentInput = document.getElementById('contentInput');
let currentSession = null;
// Event listener for starting presentation
startPresentationButton.addEventListener('click', () => {
presentationRequest.start()
.then(session => {
console.log('Presentation session started:', session);
currentSession = session;
// Send initial content
if (currentSession) {
currentSession.send('Welcome to the presentation!');
}
})
.catch(error => {
console.error('Error starting presentation:', error);
});
});
// Event listener for sending content
sendContentButton.addEventListener('click', () => {
if (currentSession) {
const contentToSend = contentInput.value;
currentSession.send(contentToSend);
contentInput.value = ''; // Clear input
} else {
alert('Please start a presentation session first.');
}
});
// Handle existing sessions or session changes
presentationRequest.addEventListener('sessionavailable', event => {
console.log('Session available:', event.session);
currentSession = event.session;
});
presentationRequest.addEventListener('sessionstarted', event => {
console.log('Session started:', event.session);
currentSession = event.session;
});
presentationRequest.addEventListener('sessionended', event => {
console.log('Session ended:', event.session);
currentSession = null;
});
// Check for initial availability
navigator.presentation.getAvailability()
.then(isAvailable => {
if (isAvailable) {
console.log('Presentation devices are available.');
// You might want to enable the 'startPresentation' button here
}
});
ãã¬ãŒã³ã¿ãŒããŒãžïŒäŸïŒpresenter.html
ïŒã«ã¯ã³ã³ãããŒã«ããããŸãïŒ
<!DOCTYPE html>
<html>
<head>
<title>Presentation Presenter</title>
</head>
<body>
<h1>Presentation Control</h1>
<button id="startPresentation">Start Presentation</button>
<div>
<input type="text" id="contentInput" placeholder="Enter content to send" />
<button id="sendContent">Send Content</button>
</div>
<script src="presenter.js"></script>
</body>
</html>
ã¹ããã3ïŒããã€ã¹ã®çºèŠãšæ¥ç¶
Presentation APIãå®è£ ããäžã§ã®äž»ãªèª²é¡ã¯ãããã€ã¹ã®çºèŠãšæ¥ç¶ããã»ã¹ãåŠçããããšã§ããããã¯åºç€ãšãªããã£ã¹ãã£ã³ã°æè¡ã«å€§ããäŸåããããã§ãã
- Miracast/Wi-Fi DisplayïŒãããã®æè¡ã¯ãè¿ãã®ã¹ã¯ãªãŒã³ãçºèŠããŠæ¥ç¶ããããã«ããã©ãŠã¶åºæã®å®è£ ãæ¡åŒµæ©èœãå¿ èŠãšããããšããããããŸãã
- Google CastïŒGoogle Castããã€ã¹ã®å Žåãéåžžã¯Cast SDKã䜿çšããŠã»ã³ããŒïŒãã¬ãŒã³ã¿ãŒïŒãšã¬ã·ãŒããŒã®äž¡æ¹ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸãããã©ãŠã¶ã®Presentation APIã¯ããããã®è©³çްã®äžéšãæœè±¡åããããçµ±äžãããã¢ãããŒããå¯èœã«ããããšããããŸãã
- ãã®ä»ã®ç¬èªãœãªã¥ãŒã·ã§ã³ïŒå€ãã®ç¬èªã®ãã£ã¹ãã£ã³ã°ãœãªã¥ãŒã·ã§ã³ãååšããããããã«ç¬èªã®SDKãšçµ±åæ¹æ³ããããŸããPresentation APIã¯ããããã®äžã«æšæºåãããã¬ã€ã€ãŒãæäŸããããšãç®æããŠããŸãã
ãŠãŒã¶ãŒããStart Presentationããã¯ãªãã¯ãããšãpresentationRequest.start()
ã¡ãœããã¯å©çšå¯èœãªãã¬ãŒã³ããŒã·ã§ã³ãšã³ããã€ã³ãã®çºèŠã詊ã¿ãŸãããã©ãŠã¶ã¯éåžžããŠãŒã¶ãŒã«UIãæç€ºããçºèŠãããã¹ã¯ãªãŒã³ã®ãªã¹ãããç®çã®ãã£ã¹ãã¬ã€ããã€ã¹ãéžæã§ããããã«ããŸãã
ã¹ããã4ïŒããŒã¿ã®éåä¿¡
ã»ãã·ã§ã³ã確ç«ããããšããã¬ãŒã³ã¿ãŒã®PresentationSession
ãªããžã§ã¯ãã«ã¯send(data)
ã¡ãœããããããŸãããã®ããŒã¿ã¯ãåçŽãªããã¹ãæååããè€éãªJSONãªããžã§ã¯ããŸã§äœã§ãå¯èœã§ããã¬ãŒã³ã¿ãŒãšã¬ã·ãŒããŒéã®ãªãããªéä¿¡ãå¯èœã«ããŸããã¬ã·ãŒããŒã¯ãsession
ãªããžã§ã¯ãã®'message'
ã€ãã³ãã®ã€ãã³ããªã¹ããŒã䜿çšããŠãã®ããŒã¿ãåä¿¡ããããã«å¿ããŠUIãæŽæ°ããŸãã
ã¹ããã5ïŒã»ãã·ã§ã³ã©ã€ããµã€ã¯ã«ã®åŠç
ããŸããŸãªã»ãã·ã§ã³ã©ã€ããµã€ã¯ã«ã€ãã³ããåŠçããããšãéèŠã§ãïŒ
sessionavailable
ïŒã»ãã·ã§ã³ãå©çšå¯èœã«ãªã£ããšãïŒäŸïŒä»¥åã¯å©çšã§ããªãã£ãããã€ã¹ãèŠã€ãã£ããšãïŒã«çºç«ããŸããsessionstarted
ïŒãã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ãæ£åžžã«éå§ããããšãã«çºç«ããŸããsessionended
ïŒãã¬ãŒã³ã¿ãŒãã¬ã·ãŒããŒããŸãã¯ãããã¯ãŒã¯ã®åé¡ã«ãããã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ãçµäºãããšãã«çºç«ããŸããsessionunavailable
ïŒã»ãã·ã§ã³ãå©çšã§ããªããªã£ããšãã«çºç«ããŸãã
ãããã®ã€ãã³ããé©åã«åŠçããããšã§ãå ç¢ã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªäœéšãä¿èšŒãããã¢ããªã±ãŒã·ã§ã³ã¯æ¥ç¶ç¶æ ãé©åã«ç®¡çããUIãããã«å¿ããŠæŽæ°ã§ããŸãã
ã°ããŒãã«ãªãŠãŒã¹ã±ãŒã¹ãšäºäŸ
Presentation APIã®ã°ããŒãã«ãªé©çšæ§ã¯ãå°ççãªå¢çãè¶ãã倿§ãªãŠãŒã¶ãŒããŒãºã«å¿ããèœåã«ãããŸãïŒ
1. åœéäŒè°ã§ã®ãã¬ãŒã³ããŒã·ã§ã³
ã·ããªãªïŒã°ããŒãã«ãªãã¯ãããžãŒäŒæ¥ãåœéäŒè°ãéå¬ããŠããŸããçºè¡šè ã¯ããŒãPCã䜿çšããŠè¬æŒãè¡ããŸããåå è ã¯ããŸããŸãªéšå±ã«ããã倧ããªãããžã§ã¯ã¿ãŒãããéšå±ãããã°ãã¹ããŒããã£ã¹ãã¬ã€ãããéšå±ããããŸããäžéšã®åå è ã¯èªåã®ããã€ã¹ãä»ããŠãªã¢ãŒãã§åå ããŠãããããããŸããã
Presentation APIã«ãã解決çïŒ
- çºè¡šè ã¯èªåã®ããŒãPCããåäŒè°å®€ã®ã¡ã€ã³ã¹ã¯ãªãŒã³ã«ã¹ã©ã€ãããã£ã¹ãããŸãã
- åå è ã¯èªåã®æºåž¯é»è©±ã䜿çšããŠãè£è¶³è³æã«ã¢ã¯ã»ã¹ããããã©ã€ãQ&Aã»ãã·ã§ã³ã«åå ãããã奜ã¿ã®èšèªã§ãã¬ãŒã³ããŒã·ã§ã³ãé²èЧãããã§ããããããã¹ãŠãã¡ã€ã³ãã£ã¹ãã¬ã€ãšåæãããŸãã
- ãªã¢ãŒãã®åå è ãWebãªã³ã¯ãä»ããŠåããã¬ãŒã³ããŒã·ã§ã³ã»ãã·ã§ã³ã«æ¥ç¶ããèªåã®ã¹ã¯ãªãŒã³ã§ã³ã³ãã³ããé²èЧããããã€ã¹ãéããŠå¯Ÿè©±ã§ããŸãã
å©ç¹ïŒå Žæã奜ã¿ã®èšèªã«é¢ä¿ãªãããã¹ãŠã®åå è ã«å¯ŸããŠäžè²«æ§ããããé åçã§ãã¢ã¯ã»ã¹ããããã³ã³ãã³ãé ä¿¡ãä¿èšŒããŸãã
2. åœå¢ãè¶ãããªããŒã«äœéš
ã·ããªãªïŒã°ããŒãã«ãªãã¡ãã·ã§ã³ãªããŒã©ãŒããäžçäžã®åºèã§ã€ã³ã¿ã©ã¯ãã£ããªã·ã§ããã³ã°äœéšãåµåºããããšèããŠããŸãã
Presentation APIã«ãã解決çïŒ
- åºèã®å€§åãã£ã¹ãã¬ã€ãã³ã¬ã¯ã·ã§ã³ãããã¢ãŒã·ã§ã³ãããªãå±ç€ºããŸãã
- 顧客ã¯ãªããŒã©ãŒã®ã¢ãã€ã«ã¢ããªã䜿çšããŠãç¹å®ã®è£œåæ å ±ãã¬ãã¥ãŒãããã«ã¯ããŒãã£ã«è©Šçäœéšãªã©ãè¿ãã®ãã£ã¹ãã¬ã€ã«ããã£ã¹ããã§ããŸãã
- ãã£ã¹ãã¬ã€ã¯ãçŸå°ã®èšèªãé貚ããµã€ãºè¡šèšã§è£œå詳现ã衚瀺ã§ããŸãã
å©ç¹ïŒããŒãœãã©ã€ãºããããå Žæã«å¿ããã³ã³ãã³ãã§é¡§å®¢ãšã³ã²ãŒãžã¡ã³ããé«ãã売äžãä¿é²ããåºèå äœéšãåäžãããŸãã
3. ã°ããŒãã«ãªæè²ãŠã§ãããŒ
ã·ããªãªïŒãªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ãã倧éžããŸããã åŠçåãã«ãŠã§ãããŒãäž»å¬ããŠããŸãã
Presentation APIã«ãã解決çïŒ
- è¬åž«ã¯ãã¹ãŠã®åå è ãã¢ã¯ã»ã¹ã§ãããã©ã€ããªã¹ã¯ãªãŒã³ã§è¬çŸ©ãå ±æããŸãã
- åŠçã¯ã»ã«ã³ãã¹ã¯ãªãŒã³ïŒã¿ãã¬ãããæºåž¯é»è©±ïŒã䜿çšããŠãã€ã³ã¿ã©ã¯ãã£ããªæŒç¿ã«ã¢ã¯ã»ã¹ããããè¬çŸ©ã®ã¿ã€ã ã©ã€ã³ãšåæããããŒããåã£ãããæç¥šã«åå ãããã§ããŸãã
- ã³ã³ãã³ãã¯èªåçã«ããŒã«ã©ã€ãºãããåŠçã®å°åãèšèªèšå®ã«åºã¥ããŠåå¹ã説æãããã€ã¹ã«è¡šç€ºãããŸãã
å©ç¹ïŒããã€ã³ã¿ã©ã¯ãã£ãã§ããŒãœãã©ã€ãºãããæè²ç°å¢ãæäŸããããšã§ãåŠç¿å¹æãšãšã³ã²ãŒãžã¡ã³ããé«ããŸãã
4. ã€ã³ã¿ã©ã¯ãã£ããªåç©é€šã®å±ç€º
ã·ããªãªïŒåç©é€šããå±ç€ºç©ã«é¢ããããè±ãã§ããŒãœãã©ã€ãºãããæ å ±ãæäŸããããšèããŠããŸãã
Presentation APIã«ãã解決çïŒ
- å±ç€ºç©ã®è¿ãã®ã¡ã€ã³ãã£ã¹ãã¬ã€ãèžè¡äœåãå·¥èžåã衚瀺ããŸãã
- 蚪åè ã¯ã¹ããŒããã©ã³ã䜿çšããŠãæŽå²çèæ¯ãã¢ãŒãã£ã¹ãã®äŒèšãé¢é£ããå·¥èžåãããã«ã¯æ¡åŒµçŸå®ã®ãªãŒããŒã¬ã€ãªã©ã®è¿œå ã³ã³ãã³ãããã¡ã€ã³ãã£ã¹ãã¬ã€ãšåæãããŠèªåã®å人ã¹ã¯ãªãŒã³ã«ãã£ã¹ãã§ããŸãã
- ã³ã³ãã³ãã¯è€æ°ã®èšèªã§æäŸã§ããåœéçãªèгå 客ã«ãå±ç€ºç©ãã¢ã¯ã»ã¹ããããããŸãã
å©ç¹ïŒååçãªéè³ãèœåçãªåŠç¿äœéšã«å€ãã倿§ãªèšªåè ã®èå³ãèæ¯ã«å¯Ÿå¿ããŸãã
課é¡ãšèæ ®äºé
匷åã§ããäžæ¹ã§ãPresentation APIã䜿çšãããã«ãã¹ã¯ãªãŒã³äœéšã®å®è£ ã«ã¯èª²é¡ããªãããã§ã¯ãããŸããïŒ
- ãã©ãŠã¶ãšããã€ã¹ã®ãµããŒãïŒæšæºã¯é²åããŠããŸãããPresentation APIã®ãã©ãŠã¶ãšããã€ã¹ã®ãµããŒãã¯äžè²«ããŠããªãå ŽåããããŸããéçºè ã¯ãå®è£ ãå ç¢ã§ããããã©ãŒã«ããã¯ã¡ã«ããºã ãæäŸããããšã確èªããå¿ èŠããããŸãã
- åºç€ãšãªããã£ã¹ãã£ã³ã°æè¡ïŒPresentation APIã¯ããã°ãã°CastãMiracastãªã©ã®åºç€ãšãªããã£ã¹ãã£ã³ã°æè¡ã«äŸåããŠãããããããã«ç¬èªã®çãSDKãã©ã€ã»ã³ã¹èŠä»¶ããããŸããããããšã®çµ±åã¯è€éããå¢ãå¯èœæ§ããããŸãã
- ãããã¯ãŒã¯ã®ä¿¡é Œæ§ïŒã¹ã ãŒãºãªãã«ãã¹ã¯ãªãŒã³äœéšã«ã¯ãå®å®ããé«éãªãããã¯ãŒã¯æ¥ç¶ãäžå¯æ¬ ã§ãããããã¯ãŒã¯ã®ç¶æ ãæªããšãé å»¶ãæ¥ç¶åãããŠãŒã¶ãŒäœéšã®äœäžã«ã€ãªããå¯èœæ§ããããŸãã
- çºèŠã¡ã«ããºã ïŒããã€ã¹ã®çºèŠã¯ãç¹ã«è€éãªãããã¯ãŒã¯ç°å¢ã§ã¯ãä¿¡é Œæ§ãäœãå ŽåããŠãŒã¶ãŒã®ä»å ¥ãå¿ èŠãªå ŽåããããŸãã
- ã»ãã¥ãªãã£ã®æžå¿µïŒããã€ã¹éã§ã³ã³ãã³ããéä¿¡ããã«ã¯ãäžæ£ã¢ã¯ã»ã¹ãããŒã¿æŒæŽ©ãé²ãããã«ãã»ãã¥ãªãã£ãæ éã«èæ ®ããå¿ èŠããããŸãã
ã°ããŒãã«ãªãã«ãã¹ã¯ãªãŒã³å±éã®ããã®ãã¹ããã©ã¯ãã£ã¹
ãã«ãã¹ã¯ãªãŒã³äœéšã®ã°ããŒãã«ãªå±éãæåãããããã«ã¯ïŒ
- ãã©ãŒã«ããã¯æŠç¥ãåªå ããïŒãŠãŒã¶ãŒã®ããã€ã¹ããã©ãŠã¶ãPresentation APIããµããŒãããŠããªãå Žåã§ããã¢ããªã±ãŒã·ã§ã³ãã³ã¢ãšãªãã·ã³ã°ã«ã¹ã¯ãªãŒã³äœéšãæäŸã§ããããã«ããŸãã
- 倿§ãªãããã¯ãŒã¯ã«æé©åããïŒããŸããŸãªãããã¯ãŒã¯é床ã«å¯Ÿå¿ã§ããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããŸããã¢ãããã£ãã¹ããªãŒãã³ã°ãå¹ççãªããŒã¿è»¢éãæ€èšããŠãã ããã
- ããŒã«ã©ã€ãŒãŒã·ã§ã³ãªãã·ã§ã³ãæäŸããïŒã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®èšèªãé貚ãå°åã³ã³ãã³ãã®ããªãšãŒã·ã§ã³ãç°¡åã«ãµããŒãã§ããããã«èšèšããŸãã
- æç¢ºãªãŠãŒã¶ãŒæç€ºãæäŸããïŒããã€ã¹ã®æ¥ç¶æ¹æ³ãæåŸ ãããããšã«ã€ããŠãŠãŒã¶ãŒãã¬ã€ãããŸããã·ã³ãã«ã§èŠèŠçãªæç€ºã¯ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠãã°ãã°æè¯ã§ãã
- ããã€ã¹ãšå°åããŸããã§ãã¹ãããïŒã¿ãŒã²ãããšããã°ããŒãã«ãªãŒãã£ãšã³ã¹ã代衚ããå¹ åºãããã€ã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããããã¯ãŒã¯æ¡ä»¶ã§åŸ¹åºçãªãã¹ãã宿œããŸãã
- ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã軜éã«ä¿ã€ïŒã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ããç¹ã«æ§èœã®äœãããã€ã¹ã§ãè¿ éã«ããŒããããå¹ççã«åäœããããšã確èªããŸãã
- å¯èœãªéãæšæºã掻çšããïŒç¬èªã®ãœãªã¥ãŒã·ã§ã³ãååšããŸãããå¯èœãªéãWebæšæºã«æºæ ããããšã§ãããåºç¯ãªäºææ§ã確ä¿ãããé·æçãªã¡ã³ããã³ã¹ã³ã¹ããåæžãããŸãã
ãã«ãã¹ã¯ãªãŒã³ã€ã³ã¿ã©ã¯ã·ã§ã³ã®æªæ¥
Presentation APIã¯ãWebã€ã³ã¿ã©ã¯ã·ã§ã³ã®æªæ¥ã®ããã®åºç€æè¡ã§ããããå€ãã®ããã€ã¹ãæ¥ç¶ããããŠãŒã¶ãŒãããæè»ã§ããŒãœãã©ã€ãºãããã³ã³ãã³ãäœéšãèŠæ±ããã«ã€ããŠããã«ãã¹ã¯ãªãŒã³æ©èœã®éèŠæ§ã¯å¢ãã°ããã§ããä»åŸã®ãããªã鲿©ãæåŸ ãããŸãïŒ
- ãã©ãŠã¶ãšããã€ã¹ã®ãµããŒãã®å¢å ïŒæšæºãæçããã«ã€ããŠãããåºç¯ãªæ¡çšãé²ã¿ãWebå šäœã§ããäžè²«ããäœéšãããããããã§ãããã
- IoTããã€ã¹ãšã®çµ±åïŒPresentation APIã¯ããã£ã¹ãã¬ã€ã ãã§ãªããããåºç¯ãªã¢ãã®ã€ã³ã¿ãŒãããïŒIoTïŒããã€ã¹ãå¶åŸ¡ããããã«æ¡åŒµãããå¯èœæ§ããããŸãã
- é«åºŠãªåææè¡ïŒè€æ°ã®ã¹ã¯ãªãŒã³éã§ã³ã³ãã³ããšãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãåæããããã®ãããæŽç·Žãããæ¹æ³ãç»å Žããã§ãããã
- AIã«ããããŒãœãã©ã€ãŒãŒã·ã§ã³ïŒAIã䜿çšããŠããŠãŒã¶ãŒã®å¥œã¿ãã³ã³ããã¹ãã«åºã¥ããŠã»ã«ã³ãã¹ã¯ãªãŒã³ã«è¡šç€ºãããã³ã³ãã³ããåçã«é©å¿ãããããšãå¯èœã«ãªããããããŸããã
ãŸãšã
Presentation APIã¯ãäžçäžã®èŠèŽè ã«åããŠãªããã§åæããããã«ãã¹ã¯ãªãŒã³äœéšãå¯èœã«ããäžã§ã倧ããªé£èºãæå³ããŸããã³ã³ãã³ãã®å¶åŸ¡ãã³ã³ãã³ãã®ã¬ã³ããªã³ã°ããåãé¢ãããšã§ãéçºè ã¯çŸä»£ã®ãŠãŒã¶ãŒã®é²åããèŠæ±ã«å¿ãããé åçã§ã¢ã¯ã»ã¹ãããããã€ã³ã¿ã©ã¯ãã£ããªWebã¢ããªã±ãŒã·ã§ã³ãäœæããããšãã§ããŸããå®è£ ã«ã¯èª²é¡ãååšããŸãããæ žãšãªãååãçè§£ãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãäŒæ¥ãã¯ãªãšã€ã¿ãŒã¯ãã®å€é©çãªæè¡ã®å¯èœæ§ãæå€§éã«åŒãåºããäžçäžã§çã«æ²¡å ¥æã®ããããžã¿ã«äœéšãæäŸã§ããããã«ãªãã§ãããã