Можно установить одноранговое соединение между десктопом и Android с помощью TCP USB ADB? - PullRequest
0 голосов
/ 03 июля 2018

Я хотел бы создать приложение, которое соединяет приложение Android с компьютером, используя USB. Я сделал несколько шагов. Я переадресовал порты tcp с помощью команды adb:

adb forward tcp:9500 tcp:9500

Я создал TCP-сервер на Android на хосте: 127.0.0.1 порт: 9500. Затем я подключился к рабочему столу к серверу с помощью TCP-клиента на 127.0.0.1:9500, созданном на Node.js. На данный момент все работает, устройства подключены. На следующем этапе устройства начали сигнализацию. Сгенерированное Android предложение:

{"sdp":"v=0\r\no=- 1782695619798442838 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=msid-semantic: WMS ARDAMS\r\nm=video 9 UDP\/TLS\/RTP\/SAVPF 96 97 98 99 100 101 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:0\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/playout-delay\r\na=extmap:7 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-content-type\r\na=extmap:8 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-timing\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendrecv\r\na=msid:ARDAMS ARDAMSv0\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8\/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx\/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9\/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=rtpmap:99 rtx\/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 red\/90000\r\na=rtpmap:101 rtx\/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:127 ulpfec\/90000\r\na=ssrc-group:FID 1916955335 2452582321\r\na=ssrc:1916955335 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:1916955335 msid:ARDAMS ARDAMSv0\r\na=ssrc:1916955335 mslabel:ARDAMS\r\na=ssrc:1916955335 label:ARDAMSv0\r\na=ssrc:2452582321 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:2452582321 msid:ARDAMS ARDAMSv0\r\na=ssrc:2452582321 mslabel:ARDAMS\r\na=ssrc:2452582321 label:ARDAMSv0\r\nm=audio 9 UDP\/TLS\/RTP\/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendrecv\r\na=msid:ARDAMS ARDAMSa0\r\na=rtcp-mux\r\na=rtpmap:111 opus\/48000\/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC\/16000\r\na=rtpmap:104 ISAC\/32000\r\na=rtpmap:9 G722\/8000\r\na=rtpmap:102 ILBC\/8000\r\na=rtpmap:0 PCMU\/8000\r\na=rtpmap:8 PCMA\/8000\r\na=rtpmap:106 CN\/32000\r\na=rtpmap:105 CN\/16000\r\na=rtpmap:13 CN\/8000\r\na=rtpmap:110 telephone-event\/48000\r\na=rtpmap:112 telephone-event\/32000\r\na=rtpmap:113 telephone-event\/16000\r\na=rtpmap:126 telephone-event\/8000\r\na=ssrc:3388490788 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:3388490788 msid:ARDAMS ARDAMSa0\r\na=ssrc:3388490788 mslabel:ARDAMS\r\na=ssrc:3388490788 label:ARDAMSa0\r\nm=application 9 DTLS\/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"offer"}

Node.js Электронный ответ:

{"type":"answer","sdp":"v=0\r\no=- 3020637264513396082 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=msid-semantic: WMS\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:0\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 red/90000\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:127 ulpfec/90000\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}

Тогда весь процесс завершится неудачно при соединении ICE. Стороны не могут выставить подходящих кандидатов на лед. Но после подключения устройств к одной и той же локальной сети Wi-Fi webrtc начал собирать новых кандидатов на льду, и одноранговое соединение прошло успешно. Я бы установил соединение только через USB TCP / IP. Может кто-нибудь указать мне, что я делаю неправильно?

1 Ответ

0 голосов
/ 04 июля 2018

Вам нужно будет переслать UDP и убедить программное обеспечение сгенерировать правильный sdp (или отредактировать его самостоятельно).

Или вы можете настроить сервер TURN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...