![](https://habrastorage.org/webt/0w/gd/j5/0wgdj5waajwm35i_ynb0rn96f18.jpeg)
ãããããããã¯ãŒã¯äžã§ããã®ã¢ããªã±ãŒã·ã§ã³ã®åºç€ã§ããIntegra Serial Communication Protocol over EthernetïŒeISCPïŒã®èª¬æãèŠã€ããããšãã§ããŸãã ãããã³ã«ã¯èå³æ·±ãã§ãã Habréã§ã¯ããã®ãããã³ã«ã«é¢ããèšäºã¯1ã€ãèŠã€ãããŸããã§ããã äžæ¹ã§ããã®æææš©ã¯ãªã³ãã§ãŒä»¥å€ã§ã¯äœ¿çšãããŠããªãããã«èŠãããããããã«ã€ããŠæ²åçãªããšã¯äœããããŸããã äžæ¹ãèªåã®ãã¬ãŒã€ãŒããªã³ããšãŒã®ã¬ã·ãŒããŒãèªåã§æ瞊ãããæ奜家ãããå¯èœæ§ããããŸãã ãŸãããã®èšäºã¯ãçŽç²ã«çè«çãªå¥œå¥å¿ãããããŸããŸãªãããã¯ãŒã¯ãããã³ã«ã«é¢ããç¥èãåéãã人ã«ãšã£ãŠãèå³æ·±ããã®ã§ãã èå³ãããã°ãç«ã®äžã§ãé¡ãããŸãã
ãã®èšäºã®ãããã¯ã«é¢ããå ¬åŒæ å ±ã¯ã»ãšãã©ãããŸããã ãããã£ãŠããããã³ã«ã³ãã³ãã®ã¿ã説æããŠãããããããã®äœ¿çšã®æ©èœã«ã€ããŠã¯äœãè¿°ã¹ãŠããªããããèŠã€ãã£ãããã¥ã¡ã³ãã ãã«äŸåããŸããã ããã€ã¹ãã¡ãŒã ãŠã§ã¢ã®èª¿æ»ã ãã§ãªããtcpdump / wiresharkã䜿çšãããããã¯ãŒã¯ãã©ãã£ãã¯ã®åæããå€ãã®æ å ±ãåŸãããšãã§ããŸããã ããããå§ããŸãã
ããã€ã¹ã®ç¹å®ã®ã¢ãã«ã¯éèŠã§ã¯ãããŸããã ããã¯ãããã¯ãŒã¯ãã¬ãŒã€ãŒã§ãããšããèšãããããããŸããããããã¯åçã®1ã€ã«äŒŒãŠããŸããã泚ç®ãéããŠããŸãã å€éšUSBãã£ãªã¢ããã ãã§ãªãããã¥ãŒãžãã¯ãµãŒããŒïŒDLNAïŒãããé³æ¥œãåçã§ããSpotifyãDeezerãªã©ã®ã€ã³ã¿ãŒãããã©ãžãªããã³ã¹ããªãŒãã³ã°ãµãŒãã¹ããµããŒãããŠããŸãã åœç¶ããããã³ã«ã¯ãã®å€æ§æ§ããã¹ãŠãµããŒãããå¿ èŠããããŸãã
ããŒãåæ
æ€çŽ¢ãšã³ãžã³ã§é©åãªè³ªåãããããã«ã¯ããŸãã©ã®ãããªãããã³ã«ãäžè¬çã«äœ¿çšãããŠããããç解ããå¿ èŠããããŸããã ã€ãŸããæåã®ã¹ãããã¯ããŒãåæã§ãã ãããã£ãŠãããã€ã¹ã¯ãããã¯ãŒã¯äžã«ããããã®ã¢ãã¬ã¹ã¯192.168.1.80ã§ãã ããŒãã®å šç¯å²ãã¹ãã£ã³ããŸãã
> nmap -sS -p0-65535 -T5 192.168.1.80 PORT STATE SERVICE 80/tcp open http 4545/tcp open worldscores 5000/tcp open upnp 8008/tcp open http 8009/tcp open ajp13 8080/tcp open http-proxy 8888/tcp open sun-answerbook 10001/tcp open scp-config 60128/tcp open unknown
å€ãã®èå³æ·±ãããšãçºèŠãããŠããŸãã
- 80 / tcpã¯æ確ã§ã-ããã¯ããã€ã¹æ§æããŒãžã§ãã ç§ã®ã¢ãã«ã§ã¯ããããã¯ãŒã¯ã®ã»ããã¢ãããšãã¡ãŒã ãŠã§ã¢ã®æŽæ°ã®ã¿ããããŸãã åçã³ã³ãããŒã«ã¯ãããŸããã ããã«ããããhttp://192.168.1.80/album_art.cgiããªã©ã®åçãªã³ã¯ãéããŠãçŸåšåçäžã®ãã©ãã¯ã®ç»åã«ã¢ã¯ã»ã¹ã§ããŸãã
- 4545 / tcp-ææ°ã®ãã¡ãŒã ãŠã§ã¢ã®æŽæ°åŸã«è¡šç€ºãããŸãã Nmapã¯åœŒã«ã€ããŠäœãç¥ããŸããã æ¥ç¶ããããšãããšãããã«jsonã«çŸåšã®åçã¹ããŒã¿ã¹ãéä¿¡ãããæ¯ç§æŽæ°ãéä¿¡ãããŸã
åçç¶æ ã®ããŒã¿ãããã¯{ "data": { "fireCast": false, "status": { "duration": 224893, "playBytes": 0 }, "error": "", "matchingMediaRoles": [], "controls": { "previous": true, "next_": true, "seekBytes": true, "seekTime": true, "pause": true, "seekTrack": true }, "mediaRoles": { "title": "", "asciiTitle": "" }, "playId": { "systemMemberId": "Onkyo NS-6130", "timestamp": 447085 }, "state": "playing", "trackRoles": { "mediaData": { "metaData": { "artist": "Ottawan", "album": "Greatest Hits", "serviceID": "Storage_usb2" } }, "title": "Shalala-Song", "flags": { "file": true }, "path": "storage_file_usb2:sda-94DB-FB8F/flac/Disco/Ottawan/Greatest Hits (2007)/05-Shalala-Song.flac", "optPlayingConentInfo": { "playingTrackTotal": 17, "playingTrackNo": 4 }, "icon": "file:///tmp/temp_data_albumArt_3c70a403584dc761cabc88ac0dfbb95c", "type": "audio" } }, "playTime": { "i64_": 139021, "type": "i64_" }, "senderVolume": {}, "senderMute": {}, "sender": "Onkyo-NS-6130-E1EE7F" }
ç§ãèšã£ãããã«ããã®ããŒãã¯ææ°ã®ã¢ããããŒãã§ç»å ŽããŸããã åèªããã®ããã¥ã¡ã³ãã¯ãŸã£ãããããŸããã 軜éã®ã³ã³ãããŒã«ããã«ã®éçºã«åœ¹ç«ã€å ŽåããããŸãã ãããããã®æ¹åã§ç§ã¯ãŸã æã£ãŠããŸããã - 5000 / tcp-nmapã¯ãApple AirTunesãšããŠå®çŸ©ããŸãã ãã®ãããã³ã«ã®ãµããŒãã¯ããã¥ã¡ã³ãã«èšèŒãããŠããã®ã§ãæ¬åœã®ããã§ãã
- 8008 / tcpã8009 / tcp-ç®çã¯æ確ã§ã¯ãªããnmapã¯ãããã«ã€ããŠäœãç¥ããŸããã
- 8080 / tcp-http-proxyããã®ãã¬ãŒã€ãŒã®ã³ã³ããã¹ãã§ã®ç®çã¯å®å šã«ã¯æããã§ã¯ãããŸããã
- 8888 / tcp-ãããã³ã«ããŒããŠãããŒãµã«ãã©ã°ã¢ã³ããã¬ã€ïŒUpnPïŒ gupnp-toolsããã±ãŒãžã®gupnp-universal-cpãŠãŒãã£ãªãã£ã䜿çšãããšããã®èª¬æã衚瀺ã§ããŸãã
æåã¯ãå ¬åŒã¢ããªã±ãŒã·ã§ã³ã®ç®¡çã¯ãã®ç¹å®ã®ãããã³ã«ã«åºã¥ããŠå®è£ ãããŠãããšèããããŠããŸããã åŸã§å€æããããã«ã圌ã¯ééã£ãŠããŸããã ãŸããã¢ãã€ã«ãšãã¹ã¯ãããã®äž¡æ¹ã®UpnPã¯ã©ã€ã¢ã³ããããã€ãè©ŠããŸããã ãã¹ãŠã¯å®è³ªçã«åäœäžèœã§ããäžéšã®å¶åŸ¡ã³ãã³ãã¯æ©èœããŸãããäžéšã¯æ©èœãããå®å šã«æ··chaãšããŠããŸãã - 10001 / tcp-SCPæ§æããŒãã«äŒŒãŠããŸããããã®äœ¿çšæ¹æ³ã¯æ確ã§ã¯ãããŸããã
- 60128 / tcp-æåŸã«ããã®èšäºã®äž»äººå ¬ã§ããeISCPãããã³ã«ããŒãã Nmapã圌ã«ã€ããŠäœãç¥ããŸããã ç§å¯ã®ããŒã«ãéããŸãããã
ãã©ãã£ãã¯åæ
次ã«ãã©ã®ããŒããšãå ¬åŒã¢ããªã±ãŒã·ã§ã³ãããã€ã¹ãšéä¿¡ãããã確èªããŸãããã ãããè¡ãæãç°¡åãªæ¹æ³ã¯ãã«ãŒãåãããAndroidäžã§ãïŒãã ããå ¬åŒã¢ããªã±ãŒã·ã§ã³ã«ã¯åãããŒã«ã«ãµããããäžã®ç®¡ç察象ããã€ã¹ãå¿ èŠãªããããšãã¥ã¬ãŒã¿ãŒã§ã¯ãããŸããïŒã ãããè¡ãã«ã¯ïŒ
- Onkyo Controllerãæ¢ã«ã€ã³ã¹ããŒã«ãããŠããAndroidããã€ã¹ã«Android tcpdumpãã€ã³ã¹ããŒã«ããŸã
- rootãšããŠadbçµç±ã§Androidããã€ã¹ã«ã¢ã¯ã»ã¹ããŸãã
> adb root && adb shell root@fiber-bs1078:/>
- å
èµSDã«ãŒãã®ä»»æã®ãã£ã¬ã¯ããªã«ç§»åããŸãã
root@fiber-bs1078:/> cd /sdcard/work root@fiber-bs1078:/sdcard/work>
- tcpdumpãéå§ããŸãïŒãã¡ã€ã«å
ã®ã¬ã³ãŒãã䜿çšïŒ
root@fiber-bs1078:/sdcard/work> tcpdump -vX -i any -w onkyo.dump host 192.168.1.80 tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
- Onkyoã¢ããªã±ãŒã·ã§ã³ãèµ·åããããããé³æ¥œã®åçãéå§ããŸã
- æ°çŸã®ãã±ãããå ¥åãããããCttl + Cã§tcpdumpãåæ¢ããŸã
- ã¿ãŒããã«ã«æ»ããADBãèµ·åããŠããã¡ã€ã«ãåäœäžã®ã³ã³ãã¥ãŒã¿ãŒã«ã³ããŒããŸã
root@fiber-bs1078:/sdcard/work> exit > adb pull /sdcard/work/onkyo.dump . [100%] /sdcard/work/onkyo.dump
- Wiresharkãèµ·åããŠãããã§äœãèµ·ãããã確èªããŸãã
> wireshark onkyo.dump &
å®éãéä¿¡ã¯ããŒã60128ã§è¡ãããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã¯ãã¬ãŒã€ãŒã«ãªã¯ãšã¹ããéä¿¡ããŸãã
![](https://habrastorage.org/webt/jj/ic/rz/jjicrzg2lu2vhw0ealtsfnnrdzc.png)
ãããŠåœŒã¯åœŒã«çããŸãïŒ
![](https://habrastorage.org/webt/ws/jt/ny/wsjtny3kp8cbkas8mkazwqdgwyo.png)
ããã§ãç§ãã¡ã¯èšäºã®ãŸãã«æ¬è³ªã«æ¥ãŸããããªãã¡ïŒãã®ãããªæçŽã®ããã®äžã®åçã®äžã®ããã¯äœã§ãã-ISCPïŒ ãã®ç¥èªã¯ãããšããšRS-232ããŒããä»ããŠOnkyoããã€ã¹ãå¶åŸ¡ããããã«èšèšãããIntegra Serial Control Protocolãæå³ããŸãïŒãã®ããŒãã«é¢ããå€ãèå³æ·±ãèšäºããããŸãïŒã ãã®åŸããã¬ãã£ãã¯ã¹ãeããè¿œå ããŠæ¡åŒµãããeISCP-Integra Serial Communication Protocol over Ethernetãå€æããŸããã ãããã³ã«ã®äž¡æ¹ã®ããŒãžã§ã³ã«ã€ããŠã¯ãæè¡ææžãAVã¬ã·ãŒããŒçšã®çµ±åã·ãªã¢ã«éä¿¡ãããã³ã«ãã§èª¬æãããŠããŸãã ããã¥ã¡ã³ãã®æåã®ããŒãžã§ã³ã®æ¥ä»ã¯2012幎10æ31æ¥ã§ãæåŸã«èŠã€ãã£ãããŒãžã§ã³ã¯2017幎9æ4æ¥ã§ããèŠã€ãã£ããã¹ãŠã®ããŒãžã§ã³ã¯ããã¢ãããžã§ã¯ãã®ãªããžããªã«åéãããŸã ã ãããªããã¬ãŒã³ããŒã·ã§ã³ã¯ããã®ããã¥ã¡ã³ããšãã¬ã€ã€ãŒã®å®éšã®äž¡æ¹ã«åºã¥ããŠããŸãïŒãã ãããã®ããã¥ã¡ã³ãã§ã¯æ瀺çã«èšåããŠããŸããïŒã
ã¡ãã»ãŒãžä»æ§
ã¯ã©ã€ã¢ã³ãïŒã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãªã©ïŒãšããã€ã¹ã¯ãçãããã¹ãã¡ãã»ãŒãžã亀æããŸãã çªå·ãå«ãŸããŠããå Žåããããã¯éåžžã16é²åœ¢åŒã§è¡šç€ºãããŸãã
ã¯ã©ã€ã¢ã³ãããããã€ã¹ãžã®ã¡ãã»ãŒãžåœ¢åŒã¯éåžžã«ç°¡åã§ãã
![](https://habrastorage.org/webt/hy/u6/y-/hyu6y-p2ty8y98_mhr3cm-upeza.png)
ã¡ãã»ãŒãžã¯ãïŒãã§å§ãŸããã¿ãŒã²ããããã€ã¹ã³ãŒããã³ãã³ãã®3æåãä»»æã®é·ãã®ãã©ã¡ãŒã¿ãŒã®æååãç¶ããŸãã CRïŒ0x0DïŒãŸãã¯LFïŒ0x0AïŒããŸãã¯CR + LFã®çµã¿åããã§çµäºããŸãã
ã³ãã³ãã«å¿ããŠãããã€ã¹ã¯åãã¿ã€ãã®ã¡ãã»ãŒãžïŒäœããã®ãã©ã¡ãŒã¿ãŒã®èŠæ±ã®å ŽåïŒããŸãã¯ç°ãªãã¿ã€ããŸãã¯ã¡ãã»ãŒãžã®çµã¿åããïŒãã©ãã¯ã®åãæ¿ããªã©ã®è€éãªã¢ã¯ã·ã§ã³ã®ã³ãã³ãã®å ŽåïŒã§å¿çããŸãã ããã€ã¹ããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããã¡ãã»ãŒãžã®åœ¢åŒã¯åãã§ãã éãã¯æåŸã®ãã€ãã®ã¿ã§ãã
![](https://habrastorage.org/webt/dj/yp/9i/djyp9iurukmbhw9-vkvrgei5euw.png)
ãããã³ã«ã®èª¬æææžã«ã¯100ãè¶ ããããŸããŸãªã³ãã³ããå«ãŸããŠããŸãããç§ã®ããã€ã¹ã¯ãã®ææžãã30ãè¶ ããã³ãã³ãããµããŒãããŠããŸãã ã€ãŸããã³ãã³ãã®ã»ãããšæå¹ãªãã©ã¡ãŒã¿ãŒã®äž¡æ¹ãç¹å®ã®ããã€ã¹ã«äŸåããŸãã
ã³ãã³ãã¯è«çã°ã«ãŒãã«ã°ã«ãŒãåã§ããŸãã äŸãšããŠããããã匷調ããŸãã
- äžè¬çãªããã€ã¹ç®¡çïŒ
- NDNïŒããã€ã¹åã
- UPDïŒãã¡ãŒã ãŠã§ã¢ã¢ããããŒãã®ç¢ºèªãšã€ã³ã¹ããŒã«ã
- PWRïŒé»æºãªã³/ãªãã
- NRIïŒæ¡åŒµããã€ã¹æ å ±ã
- NTCïŒæšæºã®ãªã¢ãŒãã³ã³ãããŒã«ã®ã³ãã³ãïŒåçã³ã³ãããŒã«ãå«ãïŒã
- CAPïŒRIã³ãã¯ã¿ã«æ¥ç¶ãããå€éšã¢ã³ããå¶åŸ¡ããã³ãã³ãã
- åçäžã®ãã©ãã¯ã«é¢ããæ
å ±ïŒ
- NALïŒã¢ã«ãã åã
- NATïŒã¢ãŒãã£ã¹ãåã
- NTIïŒãã©ãã¯åã
- NFIïŒãã©ãã¯ãã¡ã€ã«æ å ±ïŒåœ¢åŒããããã¬ãŒãïŒã
- NJAïŒãã©ãã¯ã«æ·»ä»ãããç»åïŒããšãã°ãã€ã³ã¿ãŒãããã©ãžãªãéžæãããŠããå Žåãã©ãžãªå±ã®ãšã³ãã¬ã ïŒã
- NTMïŒãã©ãã¯å ã®çŸåšã®æéäœçœ®ã
- NTSïŒã¹ããŒã¿ã¹ãå·»ãæ»ããæå¹ãã©ããïŒããšãã°ãã€ã³ã¿ãŒãããã©ãžãªã®å Žåã¯èš±å¯ãããŸããïŒã
- NSTïŒãªããŒãããã³ã©ã³ãã ãã¬ã€ã³ã³ãããŒã«ã
- é³æ¥œã©ã€ãã©ãªã®ããã²ãŒã·ã§ã³ãšç®¡çïŒ
- SLIïŒãœãŒã¹ã®éžæïŒäŸïŒUSBããããã¯ãŒã¯ãµãŒãã¹ïŒã
- NSVïŒç¹å®ã®ãããã¯ãŒã¯ãµãŒãã¹ïŒã€ã³ã¿ãŒãããã©ãžãªããã¥ãŒãžãã¯ãµãŒããŒãªã©ïŒãéžæããŸãã ããã€ã¹ã®ãã¬ã€ãªã¹ãã¯ãããã¯ãŒã¯ãµãŒãã¹ã«ãé¢é£ããŠããŸãããããã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®èŠ³ç¹ããã¯å®å šã«æããã§ã¯ãããŸããã ãããŠãé»æºãåãïŒã³ã³ã»ã³ãããæãïŒãšããã®ãã¬ã€ãªã¹ãã¯åé€ãããŸãïŒ
- NLTãNLAïŒã©ã€ãã©ãªã®ã»ã¯ã·ã§ã³ïŒãã©ã«ããŒïŒãä»ããããã²ãŒã·ã§ã³ã
- PQAãPQRãPQOïŒãã¬ã€ãªã¹ã管çïŒè¿œå ãåé€ã䞊ã¹æ¿ãã
åœç¶ããã®ãªã¹ãã¯å®å šã«ã¯ã»ã©é ãã®ã§ããã®ãããã³ã«ã®ç¯å²ãšæ©èœã瀺ãããã ãã«ãªã¹ããæäŸããŸããã
ãã©ã¡ãŒã¿ãŒã«é¢ããŠã¯ããã¹ãŠã®ã¡ãã»ãŒãžã2ã€ã®ã°ã«ãŒãã«åããããšãã§ããŸãã æåã®ã°ã«ãŒãã«ã¯ãã»ãšãã©ã®ã¡ãã»ãŒãžãå«ãŸããŸãã ãã®ã°ã«ãŒãã®å Žåããã©ã¡ãŒã¿ãŒæååã«ã¯è±æ°åãŸãã¯16é²æ°åœ¢åŒã®ããŒã¿ãå«ãŸãããã€ãããšã«è§£æãããŸãã ããšãã°ãTuneIn RadioãµãŒãã¹ã«åãæ¿ãããšããã¬ãŒã€ãŒã¯NLTã¡ãã»ãŒãžãéä¿¡ããŸãããã©ã¡ãŒã¿ãŒã0E01000000090100FF0E00TuneIn Radioããæã€çŸåšã®ãªã¹ãã®ããããŒã«é¢ããæ å ±ã¯ãä»æ§ã«åŸã£ãŠãã³ãŒãããã次ã®æ å ±ãæäŸããŸãã
SERVICE=TUNEIN_RADIO; UI=LIST; LAYER=SERVICE_TOP; CURSOR=0; ITEMS=9; LAYERS=1; START=NOT_FIRST; LEFT_ICON=NONE; RIGHT_ICON=TUNEIN_RADIO; STATUS=NONE; title=TuneIn Radio
ã»ãšãã©ãã¹ãŠã®ã¡ãã»ãŒãžã«ã¯ããïŒ1NLTQSTNããªã©ã®ãQSTNããã©ã¡ãŒã¿ãŒããããŸãã ãã®ãªã¯ãšã¹ãã¯ããã®ã¿ã€ãã®ã¡ãã»ãŒãžã«å¯Ÿå¿ããçŸåšã®ã¹ããŒã¿ã¹æ å ±ãè¿ãããã®ãã¬ãŒã€ãŒãžã®ãªã¯ãšã¹ããæå³ããŸãã ããã¯ã»ãšãã©åžžã«æ©èœããŸããããã¬ãŒã€ãŒãå éšã®ã ãŒãã«å¿ããŠãã®ãããªèŠæ±ãç¡èŠããå ŽåããŸããªäŸå€ããããŸãã
2çªç®ã®ã°ã«ãŒãã¯ã¡ãã»ãŒãžã§ãããã©ã¡ãŒã¿ãŒã¯XMLã§ãããXMLããŒãµãŒã䜿çšããŠè§£æããå¿ èŠããããŸãã äžèšã®äŸãããTuneIn Radioã»ã¯ã·ã§ã³ã§ãXML圢åŒã®ã¢ã¯ãã£ããªã¹ãã«é¢ããæ å ±ã«å¿çããNLAãªã¯ãšã¹ããéä¿¡ã§ããŸãã
<?xml version="1.0" encoding="utf-8"?> <response status="ok"> <items offset="0" totalitems="9"> <item icontype="F" iconid="29" title="My Presets" selectable="1" /> <item icontype="F" iconid="29" title="Local Radio" selectable="1" /> <item icontype="F" iconid="29" title="Music" selectable="1" /> <item icontype="F" iconid="29" title="Talk" selectable="1" /> <item icontype="F" iconid="29" title="Sports" selectable="1" /> <item icontype="F" iconid="29" title="By Location" selectable="1" /> <item icontype="F" iconid="29" title="By Language" selectable="1" /> <item icontype="F" iconid="29" title="Podcasts" selectable="1" /> <item icontype="F" iconid="29" title="Login" selectable="1" /> </items> </response>
ã€ãŸãããã¬ãŒã€ãŒã¯ããã¹ãæ å ±ïŒå¶ç¶ããã¬ãŒã€ãŒã®ãã£ã¹ãã¬ã€ã«çŸåšè¡šç€ºãããŠããïŒãæäŸããã ãã§ãªããé©åãªã¢ã€ã³ã³ïŒãã©ã«ããŒãé³æ¥œãã©ãã¯ãçŸåšåçäžã®ãã©ãã¯ïŒãã¢ããã€ã¹ããŸãã
å Žåã«ãã£ãŠã¯ããã¬ãŒã€ãŒã¯ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«ããã¹ãã¡ãã»ãŒãžã衚瀺ãããããŠãŒã¶ãŒåãªã©ã®è¿œå ãã©ã¡ãŒã¿ãŒãèŠæ±ãããããŸãã ãããè¡ãããã«ããã¬ãŒã€ãŒã¯ãŠãããŒãµã«ã¡ãã»ãŒãžNCPïŒãŠãããŒãµã«ãã€ã¢ãã°ïŒãéä¿¡ããŸããããã§ã¯ããŠãŒã¶ãŒã«è¡šç€ºããå¿ èŠã®ããæ§é ãXMLã§èšè¿°ãããŠããŸãã
<?xml version="1.0" encoding="utf-8"?> <popup title="Try Deezer Premium+" align="center" type="custom" time="0" uri="resource:///popup"> <label title="" align="center" total="1" uri="resource:///popup/label:0"> <line text="Listening is limited to 30-second clips. Subscribe to enjoy unlimited music!" align="left" uri="resource:///popup/label/line:0" order="0" /> </label> <buttongroup title="" align="center" total="1" uri="resource:///popup/buttongroup:0"> <button text="OK" align="center" uri="/button:0" selected="false" index="0" www="" order="1" /> </buttongroup> </popup>
å¿çãšããŠããã¬ãŒã€ãŒã¯ããã£ãŒã«ãã«å ¥åãããïŒãŸãã¯æŒããããã¿ã³ïŒåãã¡ãã»ãŒãžãæåŸ ããŸãã
ãŸããXML圢åŒã§ã¯ãããªãéèŠãªNRIã¡ãã»ãŒãžïŒãã¬ãŒã€ãŒã«é¢ããäžè¬æ å ±ïŒã衚瀺ãããŸãã ã¡ãã»ãŒãžã¯ååã«å€§ããã®ã§ããã¿ãã¬ã®äžã«é ããŸãã
ãã¬ãŒã€ãŒã®äžè¬æ
å ±
<?xml version="1.0" encoding="utf-8"?> <response status="ok"> <device id="NS-6130"> <brand>ONKYO</brand> <category>NAP-O</category> <year>2016</year> <model>NS-6130</model> <destination>xx</destination> <macaddress>0009B0E1EE7F</macaddress> <modeliconurl>http://192.168.1.80/icon/OAVR_120.jpg</modeliconurl> <friendlyname></friendlyname> <firmwareversion>2110-0000-0000-0010-0000</firmwareversion> <ecosystemversion>200</ecosystemversion> <netservicelist count="9"> <netservice id="0e" value="1" name="TuneIn Radio" account="Username" password="Password" zone="01" enable="01" /> <netservice id="0a" value="1" name="Spotify" zone="01" enable="01" /> <netservice id="12" value="1" name="Deezer" account="Email address" password="Password" zone="01" enable="01" /> <netservice id="18" value="1" name="AirPlay" zone="01" enable="01" /> <netservice id="1b" value="1" name="TIDAL" account="Username" password="Password" zone="01" enable="01" /> <netservice id="00" value="1" name="Music Server" zone="01" enable="01" addqueue="1" sort="1" /> <netservice id="43" value="1" name="FlareConnect" zone="07" enable="0e" /> <netservice id="40" value="1" name="Chromecast built-in" zone="01" enable="01" /> <netservice id="1d" value="1" name="Play Queue" zone="01" enable="01" /> </netservicelist> <zonelist count="4"> <zone id="1" value="1" name="Main" volmax="0" volstep="0" src="1" dst="1" lrselect="0" /> <zone id="2" value="0" name="Zone2" volmax="0" volstep="0" src="0" dst="0" lrselect="0" /> <zone id="3" value="0" name="Zone3" volmax="0" volstep="0" src="0" dst="0" lrselect="0" /> <zone id="4" value="0" name="Zone4" volmax="0" volstep="0" src="0" dst="0" lrselect="0" /> </zonelist> <selectorlist count="3"> <selector id="2b" value="1" name="NET" zone="01" iconid="2b" /> <selector id="29" value="1" name="USB(F)" zone="01" iconid="29" addqueue="1" /> <selector id="2a" value="1" name="USB(R)" zone="01" iconid="2a" addqueue="1" /> </selectorlist> <presetlist count="40"> <preset id="01" band="0" freq="0" name="" /> <preset id="02" band="0" freq="0" name="" /> <preset id="03" band="0" freq="0" name="" /> <preset id="04" band="0" freq="0" name="" /> <preset id="05" band="0" freq="0" name="" /> <preset id="06" band="0" freq="0" name="" /> <preset id="07" band="0" freq="0" name="" /> <preset id="08" band="0" freq="0" name="" /> <preset id="09" band="0" freq="0" name="" /> <preset id="0a" band="0" freq="0" name="" /> <preset id="0b" band="0" freq="0" name="" /> <preset id="0c" band="0" freq="0" name="" /> <preset id="0d" band="0" freq="0" name="" /> <preset id="0e" band="0" freq="0" name="" /> <preset id="0f" band="0" freq="0" name="" /> <preset id="10" band="0" freq="0" name="" /> <preset id="11" band="0" freq="0" name="" /> <preset id="12" band="0" freq="0" name="" /> <preset id="13" band="0" freq="0" name="" /> <preset id="14" band="0" freq="0" name="" /> <preset id="15" band="0" freq="0" name="" /> <preset id="16" band="0" freq="0" name="" /> <preset id="17" band="0" freq="0" name="" /> <preset id="18" band="0" freq="0" name="" /> <preset id="19" band="0" freq="0" name="" /> <preset id="1a" band="0" freq="0" name="" /> <preset id="1b" band="0" freq="0" name="" /> <preset id="1c" band="0" freq="0" name="" /> <preset id="1d" band="0" freq="0" name="" /> <preset id="1e" band="0" freq="0" name="" /> <preset id="1f" band="0" freq="0" name="" /> <preset id="20" band="0" freq="0" name="" /> <preset id="21" band="0" freq="0" name="" /> <preset id="22" band="0" freq="0" name="" /> <preset id="23" band="0" freq="0" name="" /> <preset id="24" band="0" freq="0" name="" /> <preset id="25" band="0" freq="0" name="" /> <preset id="26" band="0" freq="0" name="" /> <preset id="27" band="0" freq="0" name="" /> <preset id="28" band="0" freq="0" name="" /> </presetlist> <controllist count="61"> <control id="Bass" value="0" zone="1" min="-10" max="10" step="2" /> <control id="Treble" value="0" zone="1" min="-10" max="10" step="2" /> <control id="Center Level" value="0" zone="1" min="-12" max="12" step="1" /> <control id="Subwoofer Level" value="0" zone="1" min="-15" max="12" step="1" /> <control id="Subwoofer1 Level" value="0" zone="1" min="-15" max="12" step="1" /> <control id="Subwoofer2 Level" value="0" zone="1" min="-15" max="12" step="1" /> <control id="Phase Matching Bass" value="0" /> <control id="LMD Movie/TV" value="0" code="MOVIE" position="1" /> <control id="LMD Music" value="0" code="MUSIC" position="2" /> <control id="LMD Game" value="0" code="GAME" position="3" /> <control id="LMD THX" value="0" code="04" position="4" /> <control id="LMD Stereo" value="0" code="00" position="4" /> <control id="LMD Direct" value="0" code="01" position="1" /> <control id="LMD Pure Audio" value="0" code="11" position="2" /> <control id="LMD Pure Direct" value="0" code="11" position="1" /> <control id="LMD Auto/Direct" value="0" code="AUTO" position="2" /> <control id="LMD Stereo G" value="0" code="STEREO" position="3" /> <control id="LMD Surround" value="0" code="SURR" position="4" /> <control id="TUNER Control" value="0" /> <control id="TUNER Freq Control" value="0" /> <control id="Info" value="2" /> <control id="Cursor" value="1" /> <control id="Home" value="0" code="HOME" position="2" /> <control id="Setup" value="1" code="MENU" position="2" /> <control id="Quick" value="0" code="QUICK" position="1" /> <control id="Menu" value="0" code="MENU" position="1" /> <control id="AMP Control(RI)" value="1" /> <control id="CD Control(RI)" value="1" /> <control id="CD Control" value="0" /> <control id="BD Control(CEC)" value="0" /> <control id="TV Control(CEC)" value="0" /> <control id="NoPowerButton" value="0" /> <control id="DownSample" value="0" /> <control id="Dimmer" value="1" /> <control id="time_hhmmss" value="1" /> <control id="Zone2 Control(CEC)" value="0" /> <control id="Sub Control(CEC)" value="0" /> <control id="NoNetworkStandby" value="0" /> <control id="NJAREQ" value="1" /> <control id="Music Optimizer" value="0" /> <control id="NoVideoInfo" value="1" /> <control id="NoAudioInfo" value="1" /> <control id="AV Adjust" value="0" /> <control id="Audio Scalar" value="0" /> <control id="Hi-Bit" value="0" /> <control id="Upsampling" value="0" /> <control id="Digital Filter" value="1" /> <control id="DolbyAtmos" value="0" /> <control id="DTS:X" value="0" /> <control id="MCACC" value="0" /> <control id="Dialog Enhance" value="0" /> <control id="PQLS" value="0" /> <control id="CD Control(NewRemote)" value="0" /> <control id="NoVolume" value="1" /> <control id="Auto Sound Retriever" value="0" /> <control id="Lock Range Adjust" value="0" /> <control id="P.BASS" value="0" /> <control id="Tone Direct" value="0" /> <control id="DetailedFileInfo" value="1" /> <control id="NoDABPresetFunc" value="0" /> <control id="S.BASS" value="0" /> </controllist> <functionlist count="10"> <function id="UsbUpdate" value="0" /> <function id="NetUpdate" value="1" /> <function id="WebSetup" value="1" /> <function id="WifiSetup" value="1" /> <function id="Nettune" value="0" /> <function id="Initialize" value="0" /> <function id="Battery" value="0" /> <function id="AutoStandbySetting" value="0" /> <function id="e-onkyo" value="0" /> <function id="UsbDabDongle" value="0" /> </functionlist> <tuners count="0"></tuners> </device> </response>
ããã€ã¹ãå¶åŸ¡ããããã«äœ¿çšããå¿ èŠãããã³ãã³ãã®ã»ããã¯ããã®ã¡ãã»ãŒãžã®zonelistããã³controllistã»ã¯ã·ã§ã³ã®å 容ã«å€§ããäŸåããŸãã
ISCP over EthernetïŒeISCPïŒ
äžèšã®ãã©ãŒã ã®ã¡ãã»ãŒãžã¯ãã±ãŒãã«ïŒRS-232ïŒãä»ããéä¿¡ãç®çãšããŠããŸãã å€ãã¬ã·ãŒããŒã«ã¯ã9ãã³RS-232ã³ãã¯ã¿ãŒãè£ åãããŠããŸããã ãã®ã³ãã¯ã¿ã®ä»£ããã«ãããã¯ãŒã¯æ¥ç¶ïŒæç·ãŸãã¯ç¡ç·ïŒã䜿çšãå§ãããšãããããã®ã¡ãã»ãŒãžãTCP / IPã§éä¿¡ããããã«ã©ãããŒã§ã©ããããå¿ èŠããããŸããã ãã®ããããã®ãããªããã±ãŒãžã«ISCPã¡ãã»ãŒãžãã©ãããããŠããeISCPãããã³ã«ãç»å ŽããŸããã
![](https://habrastorage.org/webt/rw/vc/rr/rwvcrrmabkusrdtefwppbdtrby4.png)
ãã¿ãã¬ã®äžã«ããã®ã¯ãç¹å®ã®ã³ãŒãïŒå€æ°ã³ãŒãïŒãäžé£ã®ãã©ã¡ãŒã¿ãŒïŒå€æ°ãã©ã¡ãŒã¿ãŒïŒãããã³ç¹å®ã®ãããã³ã«ããŒãžã§ã³ïŒå€æ°ããŒãžã§ã³ïŒãæã€ã¡ãã»ãŒãžã®ããã±ãŒãžãå®å šã«çæããããã·ãŒãžã£ã®ã³ãŒãã§ãã æé ã¯éåžžã«åçŽãªã®ã§ãJavaã³ãŒãã¯1000èªä»¥äžãèšããšæãããŸãã
eISCPã¡ãã»ãŒãžãçæããæé
private final static int MIN_MSG_LENGTH = 22; private final static String MSG_START = "ISCP"; private final static Character START_CHAR = '!'; private final static int LF = 0x0A; ... byte[] getBytes() { if (headerSize + dataSize < MIN_MSG_LENGTH) { return null; } final byte[] bytes = new byte[headerSize + dataSize]; Arrays.fill(bytes, (byte) 0); // Message header for (int i = 0; i < MSG_START.length(); i++) { bytes[i] = (byte) MSG_START.charAt(i); } // Header size byte[] size = ByteBuffer.allocate(4).putInt(headerSize).array(); System.arraycopy(size, 0, bytes, 4, size.length); // Data size size = ByteBuffer.allocate(4).putInt(dataSize).array(); System.arraycopy(size, 0, bytes, 8, size.length); // Version bytes[12] = (byte) version; // CMD bytes[16] = (byte) START_CHAR.charValue(); bytes[17] = (byte) '1'; for (int i = 0; i < code.length(); i++) { bytes[i + 18] = (byte) code.charAt(i); } // Parameters for (int i = 0; i < parameters.length(); i++) { bytes[i + 21] = (byte) parameters.charAt(i); } // End char bytes[21 + parameters.length()] = (byte) LF; return bytes; }
誰ããèå³ãæã£ãŠããå Žåã ä»æ§ããŒãžã§ã³1.40ã®ãããã³ã«å®è£ ã®äŸã次ã«ç€ºããŸãã ãã®ãªããžããªãžã®ãªã³ã¯ãæäŸããŸã ã Pythonã®ã¡ãã»ãŒãžã©ã€ãã©ãªãšã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ãããã³ä»ã®åæ§ã®ãããžã§ã¯ããžã®ãªã³ã¯ãå®è£ ããŠããŸãã
æ å ±äº€æã®å®æœ
ããšããšäœéã±ãŒãã«ã§ã®äŒéçšã«èšèšãããã¡ãã»ãŒãžèªäœã¯éåžžã«å°ãããã®ã§ãã ããã«ããã¬ãŒã€ãŒèªäœãããªãæ§ããã§ã-æ¡ä»¶ä»ãAmazonãµãŒããŒã«éä¿¡ãããèšå€§ãªéã®çµ±èšæ å ±ãèæ¯ã«ããã¬ãŒã€ãŒãISCPãä»ããŠã¯ã©ã€ã¢ã³ãã«èªçºçã«æäŸããæ å ±éã¯æ²æšã§ãã ãããã³ã«ä»æ§ã«ã¯ããã¬ã€ã€ãŒããã®æ å ±ãŸãã¯ãã®æ å ±ãéä¿¡ããã¿ã€ãã³ã°ãšæ¡ä»¶ã«ã€ããŠã®èšèã¯ãããŸããã ãã®ãããã¢ãã€ã«ã¯ã©ã€ã¢ã³ããããã€ã¹ã®çŸåšã®ç¶æ ã«é¢ãããã¹ãŠã®å¿ èŠãªæ å ±ãåžžã«ååŸã§ããããã«ãååãªæéããããŠå®éšããå¿ èŠããããŸããã
äžè¬ã«ããã¬ãŒã€ãŒãšã®éä¿¡ã¯èŠæ±/å¿çã¹ããŒã ã«åºã¥ããŠããŸãã ããã«ãç¹å®ã®ç¶æ³ã§ã¯ãåäžã®ãªã¯ãšã¹ããå¶éãããŸããã åŠçããå¿ èŠãããç§ã®ãã¬ãŒã€ãŒã®ããã€ãã®éèŠãªã€ãã³ãããããŸãã
- æ¥ç¶ã確ç«ããŸãã æ¥ç¶æã«ããã¬ãŒã€ãŒã¯ã¹ã¿ã³ãã€ã¢ãŒããŸãã¯ãªã³ã«ãªã£ãŠããããåçã¢ãŒããŸãã¯äžæåæ¢ã«ãªã£ãŠããå¯èœæ§ããããŸãã ãããã¯ãŒã¯ãµãŒãã¹ãŸãã¯USBäžã§ãå
¥åãã£ãã«ã¹ã€ãããã©ã®äœçœ®ã«ããããããã«èŠã€ããããšãéèŠã§ãã
ãããã£ãŠãæ¥ç¶ã確ç«ãããçŽåŸã«ãPWRèŠæ±ïŒã¢ã¯ãã£ããŸãã¯ã¹ã¿ã³ãã€ç¶æ ïŒãUPDïŒãã¡ãŒã ãŠã§ã¢ã®æŽæ°ãããïŒãNRIïŒããã€ã¹ã«é¢ããäžè¬æ å ±ïŒãSLIïŒå ¥åã¹ã€ããã®äœçœ®ïŒãNJAïŒãã©ãã¯ã®ç»åã®éä¿¡ã¢ãŒãïŒãéä¿¡ããããšã¯çã«ããªã£ãŠããŸããªã³ã¯ãŸãã¯ã¹ããªãŒã ïŒã ç§ã®ãã¬ãŒã€ãŒã¯ãåçã¹ããŒã¿ã¹ãšçŸåšã®äœçœ®ãç¬èªã®ã€ãã·ã¢ããã§å ·äœçã«éä¿¡ããŸãã - åçãéå§ããŸãã ãã®ç¶æ³ã§ã¯ããã¬ãŒã€ãŒã¯ãã©ãã¯ã«é¢ãããã¹ãŠã®æ
å ±ãéä¿¡ããŸãã ããããæ¥ç¶ãããšãããã¬ãŒã€ãŒããã§ã«äœãããã¬ã€ããŠãããšãããã¬ãŒã€ãŒã¯äœãéä¿¡ããŸããã ãŸãããã¬ãŒã€ãŒããã©ãã¯ãåãæ¿ãããšããã¹ãŠã®æ
å ±ãéä¿¡ãããããã§ã¯ãããŸããã
ãªãœãŒã¹éçŽåã®äžè¬çãªãœãªã¥ãŒã·ã§ã³ã¯ãNSTã¡ãã»ãŒãžïŒåçã¹ããŒã¿ã¹ïŒã远跡ãããã®ç¶æ ããåçãã«åãæ¿ãã£ãå Žåãããã«7ã€ã®ãªã¯ãšã¹ããéä¿¡ããŸãïŒNATïŒã¢ãŒãã£ã¹ãïŒãNALïŒã¢ã«ãã ã¿ã€ãã«ïŒãNTIïŒãã©ãã¯ã¿ã€ãã«ïŒãNFI ïŒãã¡ã€ã«æ å ±ïŒãNTRïŒãã©ãã¯çªå·ïŒãNTMïŒçŸåšã®åçæéïŒãNMSïŒãã©ãã¯ã¡ãã¥ãŒïŒã ãã¬ãŒã€ãŒã®ãã¡ãŒã ãŠã§ã¢ã«ã¯æ©èœããããŸãã ããšãã°ããã¬ã€ãªã¹ããåçãããšãããã¬ãŒã€ãŒã¯åçäžã®ãã©ãã¯ã®çªå·ãæããããããŸããã ãã ããäžè¬çã«ã¯ãåçã®çŸåšã®ç¶æ ãååã«è©³ããç¥ãããšãã§ããŸãã - ( ) . - . , . â 14 !
10-27 16:12:20.272: NLU[00080011; 8/17] 10-27 16:12:27.338: NTI[09-Roses Are Red.flac] 10-27 16:12:27.342: NAL[] 10-27 16:12:27.342: NAT[] 10-27 16:12:27.342: NDN[] 10-27 16:12:27.343: NJA/1937[2-...; TYPE=URL; PACKET=NOT_USED; URL=http://192.168.1.80/album_art.cgi; RAW(null)] 10-27 16:12:27.649: NMS[xxxxxS1f1; TRACK_MENU=DISABLE; POS_FEED=DISABLE; NEG_FEED=DISABLE; TIME_SEEK=ENABLE; TIME_DISPLAY=ELAPSED_TOTAL; ICON=USB_REAR] 10-27 16:12:27.649: NTR[0009; 0011] 10-27 16:12:27.649: NFI[/44.1kHz/16bit; FORMAT=; FREQUENCY=44.1kHz; BITRATE=16bit] 10-27 16:12:27.649: NLT[F1020000000B060002FF00Aquarium (1997); SERVICE=USB_REAR; UI=LIST; LAYER=UNDER_2ND_LAYER; CURSOR=0; ITEMS=11; LAYERS=6; START=NOT_FIRST; LEFT_ICON=USB; RIGHT_ICON=NONE; STATUS=NONE; title=Aquarium (1997)] 10-27 16:12:27.724: NLS[C0P; INF_TYPE=CURSOR; LINE_INFO=0; PROPERTY=NO; UPD_TYPE=PAGE; LIST_DATA=null] 10-27 16:12:27.727: NLS[U0-Happy Boys & Girls; INF_TYPE=UNICODE; LINE_INFO=0; PROPERTY=NO; UPD_TYPE=NO; LIST_DATA=Happy Boys & Girls] 10-27 16:12:27.734: NLS[U1-My Oh My; INF_TYPE=UNICODE; LINE_INFO=1; PROPERTY=NO; UPD_TYPE=NO; LIST_DATA=My Oh My] 10-27 16:12:27.737: NLS[U2-Barbie Girl; INF_TYPE=UNICODE; LINE_INFO=2; PROPERTY=NO; UPD_TYPE=NO; LIST_DATA=Barbie Girl] 10-27 16:12:27.740: NLS[U3-Good Morning Sunshine; INF_TYPE=UNICODE; LINE_INFO=3; PROPERTY=NO; UPD_TYPE=NO; LIST_DATA=Good Morning Sunshine] 10-27 16:12:27.760: NLA[X0002S000...; RESP=X; SEQ_NR=2; STATUS=S; UI=LIST; XML=<?xml version="1.0" encoding="utf-8"?><response status="ok"><items offset="0" totalitems="11" ><item icontype="M" iconid="2d" title="Happy Boys & Girls" selectable="1" /><item icontype="M" iconid="2d" title="My Oh My" selectable="1" /><item icontype="M" iconid="2d" title="Barbie Girl" selectable="1" /><item icontype="M" iconid="2d" title="Good Morning Sunshine" selectable="1" /><item icontype="M" iconid="2d" title="Doctor Jones" selectable="1" /><item icontype="M" iconid="2d" title="Heat Of The Night" selectable="1" /><item icontype="M" iconid="2d" title="Be A Man" selectable="1" /><item icontype="M" iconid="2d" title="Lollipop (Candyman)" selectable="1" /><item icontype="0" iconid="36" title="Roses Are Red" selectable="1" /><item icontype="M" iconid="2d" title="Turn Back Time" selectable="1" /><item icontype="M" iconid="2d" title="Calling You" selectable="1" /></items></response>] 10-27 16:12:29.697: NTI[Roses Are Red] 10-27 16:12:29.718: NJA/1952[2-...; TYPE=URL; PACKET=NOT_USED; URL=http://192.168.1.80/album_art.cgi; RAW(null)] 10-27 16:12:30.248: NAL[Aquarium] 10-27 16:12:30.248: NAT[Aqua] 10-27 16:12:30.248: NDN[] 10-27 16:12:30.248: NMS[xxxxxS1f1; TRACK_MENU=DISABLE; POS_FEED=DISABLE; NEG_FEED=DISABLE; TIME_SEEK=ENABLE; TIME_DISPLAY=ELAPSED_TOTAL; ICON=USB_REAR] 10-27 16:12:30.248: NTR[0009; 0011] 10-27 16:12:30.248: NFI[FLAC/44.1kHz/16bit; FORMAT=FLAC; FREQUENCY=44.1kHz; BITRATE=16bit] 10-27 16:12:30.248: NLT[F1020000000B060002FF00Aquarium (1997); SERVICE=USB_REAR; UI=LIST; LAYER=UNDER_2ND_LAYER; CURSOR=0; ITEMS=11; LAYERS=6; START=NOT_FIRST; LEFT_ICON=USB; RIGHT_ICON=NONE; STATUS=NONE; title=Aquarium (1997)] 10-27 16:12:30.248: NMS[xxxxxS1f1; TRACK_MENU=DISABLE; POS_FEED=DISABLE; NEG_FEED=DISABLE; TIME_SEEK=ENABLE; TIME_DISPLAY=ELAPSED_TOTAL; ICON=USB_REAR] 10-27 16:12:30.248: NFI[FLAC/44.1kHz/16bit; FORMAT=FLAC; FREQUENCY=44.1kHz; BITRATE=16bit] 10-27 16:12:30.248: NLT[F1020000000B060002FF00Aquarium (1997); SERVICE=USB_REAR; UI=LIST; LAYER=UNDER_2ND_LAYER; CURSOR=0; ITEMS=11; LAYERS=6; START=NOT_FIRST; LEFT_ICON=USB; RIGHT_ICON=NONE; STATUS=NONE; title=Aquarium (1997)] 10-27 16:12:34.815: NMS[xxxxxS1f1; TRACK_MENU=DISABLE; POS_FEED=DISABLE; NEG_FEED=DISABLE; TIME_SEEK=ENABLE; TIME_DISPLAY=ELAPSED_TOTAL; ICON=USB_REAR] 10-27 16:12:34.819: NFI[FLAC/44.1kHz/16bit; FORMAT=FLAC; FREQUENCY=44.1kHz; BITRATE=16bit] 10-27 16:12:34.860: NLT[F1020000000B060002FF00Aquarium (1997); SERVICE=USB_REAR; UI=LIST; LAYER=UNDER_2ND_LAYER; CURSOR=0; ITEMS=11; LAYERS=6; START=NOT_FIRST; LEFT_ICON=USB; RIGHT_ICON=NONE; STATUS=NONE; title=Aquarium (1997)]
, . , , , .
äŸãšããŠãOnkyo NS-6130ãã¬ãŒã€ãŒã®ãªã¢ãŒãã³ã³ãããŒã«çšã®Androidã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããªããžããªãžã®ãªã³ã¯ã瀺ããŸãã Onkyo NS-6170ã§ãåäœããå¯èœæ§ããããŸãããã ããOnkyoã¬ã·ãŒããŒã§ã¯äœ¿çšã§ããŸãããã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ãŒã¹å šäœããéåžžã¯ã¬ã·ãŒããŒäžã«ãªãé³æ¥œã©ã€ãã©ãªã®åçãšç®¡çã«ç¹ã«é©ããŠããããã§ãããããã£ãŠããã®ã¢ããªã±ãŒã·ã§ã³ãäœããã®åœ¢ã§é åžããèšç»ã¯ãããŸãããããã§ã¯ããã®ãããã³ã«ã®å®è£ ã®äŸãšããŠã®ã¿èª¬æããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®æ§é ã¯ã·ã³ãã«ã§ããã¶ã€ã³ã¯æå°éã§ãã次ã®3ã€ã®ã¿ãã®ã¿ããããŸãã
- . , . , RI Onkyo. , , , .
-
-
ç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªãã10åå°ãããå¿çæ§ãé«ãã暪ç»é¢ã®åããšããŸããŸãªããŒãããµããŒãããŸããããã¯ç§ã®ã¿ã¹ã¯ã®å šç¯å²ãå®å šã«ã«ããŒããŠããŸãããã©ãã«ãã©ãã«æ¡åŒµãããã¯ãããŸãããã ããç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªããæ®éçã§ã¯ãããŸããã
ãã®èšäºãèªãã åŸãOnkyoããã€ã¹ã®ææè ã®1人ãèªåã®ã³ããŒãè©ŠããŠã¿ãããšæã£ããããã®è³æãšãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ããããã¯ã«å ¥ãããã®ãããå€ãäžããããšãé¡ã£ãŠããŸãã
ãæž èŽããããšãããããŸããïŒ