Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上的WebRTC中建立数据通道_Android_Webrtc_Libjingle - Fatal编程技术网

在Android上的WebRTC中建立数据通道

在Android上的WebRTC中建立数据通道,android,webrtc,libjingle,Android,Webrtc,Libjingle,我正在尝试在Android上建立WebRTC数据通道。然而,我根据AppRTC和libjingle api编写的代码,Android抛出了一个调试错误。我应该遵循哪些步骤向PeerConnection添加数据通道?我怀疑需要重新协商(),但我似乎无法实现它 到目前为止,我的代码(为了简短起见,仅显示相关部分): 在我的Logcat中,成功记录的最后一条消息是“Creating observer for datachannel”。接着是日志输出(最后三行以类似的方式持续一段时间): 08-23 1

我正在尝试在Android上建立WebRTC数据通道。然而,我根据AppRTC和libjingle api编写的代码,Android抛出了一个调试错误。我应该遵循哪些步骤向PeerConnection添加数据通道?我怀疑需要重新协商(),但我似乎无法实现它

到目前为止,我的代码(为了简短起见,仅显示相关部分):

在我的Logcat中,成功记录的最后一条消息是“Creating observer for datachannel”。接着是日志输出(最后三行以类似的方式持续一段时间):

08-23 16:57:05.356:D/dalvikvm(15777):[SWE]###S.LSI JIT优化列表开始###
08-23 16:57:05.356:D/dalvikvm(15777):[SWE]###S.LSI JIT优化列表结束###
08-23 16:57:05.356:A/libc(15777):0x00000000(代码=1)处的致命信号11(SIGSEGV),线程15899(订阅管理)
8-23 16:57:05.356:D/STATUSBAR IconMerger(3230):检查溢出(504),更多:错误,请求:错误子项:4
2008-23 16:57:05.416:I/DEBUG(2543):*********************************************************************************************************************************************************************************************************************************
08-23 16:57:05.416:I/DEBUG(2543):构建指纹:“三星/ja3gxx/ja3g:4.4.2/KOT49H/I9500XXUFNE7:用户/释放密钥”
08-23 16:57:05.416:I/DEBUG(2543):修订版:“10”

08-23 16:57:05.421:I/DEBUG(2543):pid:15777,tid:15899,姓名:Subscribe Manag>>>com.dragondevelopers.testwebrtc现在我在两部手机之间建立数据连接时也遇到了麻烦

看看这个

我只需要删除
pcConstraints.optional.add(newmediaconstraints.KeyValuePair(“RtpDataChannels”,“true”);

然后确保在提供之前我已经创建了DataChannel!然后确保已正确初始化连接工厂

我在安卓上使用datachannel遇到了麻烦,你解决了问题吗?嗨@lmo。我最终还是做对了。我发现我必须设置pcConstraints.optional.add(new MediaContraints.KeyValuePair(“DtlsSrtpKeyAgreement”,“true”)),其中pcConstraints是PeerConnection.createOffer中使用的MediaConstraints对象。在Javascript中使用这个之后,我发现如果不指定它(然后创建一个RTP数据通道)与指定它(创建一个SRTP数据通道)时,创建数据通道的机制有点不同。很抱歉现在才给你回电话!你能给我看看你的代码吗?@AlexanderSupertramp这是一段相当繁重的代码。根据StackOverflow的社区规则/指南,在Github上发布一个代码片段的链接是吗?@TielmanNieuwoudt,当然。
//My class for the DataChannel.Observer interface
private class DcObserver implements DataChannel.Observer{

        @Override
        public void onMessage(DataChannel.Buffer dcBuf){
            //Java deserialization implementation
            CharBuffer cBufRx = dcBuf.data.asCharBuffer();
            String receiveStr = cBufRx.toString();
        }

        @Override
        public void onStateChange() {}

    }

//The constraints that I specify
pcConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveAudio", "true"));
pcConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveVideo", "false"));
pcConstraints.optional.add(new MediaConstraints.KeyValuePair("RtpDataChannels", "true"));

pc = factory.createPeerConnection(iceServers, pcConstraints, this);
//pc confirmed to work at this stage if only audio (no data) is defined for the stream

DataChannel.Init dcOptions = new DataChannel.Init();
dcOptions.ordered = false;
dc =  pc.createDataChannel("testDataChannelLabel", dcOptions);
Log.d(TAG, "Creating observer for datachannel");
dcObs = new DcObserver();
dc.registerObserver(dcObs);
Log.d(TAG, "Now adding local stream");
pc.addStream(lMS, new MediaConstraints());
08-23 16:57:05.356: D/dalvikvm(15777): [SWE] ### S.LSI JIT optimization list BEGIN ###
08-23 16:57:05.356: D/dalvikvm(15777): [SWE] ### S.LSI JIT optimization list END ###
08-23 16:57:05.356: A/libc(15777): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 15899 (Subscribe-Manag)
08-23 16:57:05.356: D/STATUSBAR-IconMerger(3230): checkOverflow(504), More:false, Req:false Child:4
08-23 16:57:05.416: I/DEBUG(2543): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-23 16:57:05.416: I/DEBUG(2543): Build fingerprint: 'samsung/ja3gxx/ja3g:4.4.2/KOT49H/I9500XXUFNE7:user/release-keys'
08-23 16:57:05.416: I/DEBUG(2543): Revision: '10'
08-23 16:57:05.421: I/DEBUG(2543): pid: 15777, tid: 15899, name: Subscribe-Manag  >>> com.dragondevelopers.testwebrtc <<<
08-23 16:57:05.421: I/DEBUG(2543): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
08-23 16:57:05.836: I/DEBUG(2543):     r0 00000000  r1 7cb05b98  r2 7caecf18  r3 7cefb974
08-23 16:57:05.836: I/DEBUG(2543):     r4 7cb05b98  r5 7caecf18  r6 400a2384  r7 78900001
08-23 16:57:05.836: I/DEBUG(2543):     r8 1d2004d6  r9 7cdfce50  sl 7caeca48  fp 7cefb9ec
08-23 16:57:05.836: I/DEBUG(2543):     ip 7cdfd250  sp 7cefb970  lr 4172e5dd  pc 77a4b154  cpsr 200d0030
08-23 16:57:05.841: I/DEBUG(2543):     d0  67617373654d6e3c  d1  42246c656e6e6169
08-23 16:57:05.841: I/DEBUG(2543):     d2  6d8952086d89516e  d3  6d8952786d895269
08-23 16:57:05.841: I/DEBUG(2543):     d4  0000000000000000  d5  3f80000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d6  3f80000000000000  d7  0000000080000000
08-23 16:57:05.841: I/DEBUG(2543):     d8  0000000000000000  d9  0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d10 0000000000000000  d11 0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d12 0000000000000000  d13 0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d14 0000000000000000  d15 0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d16 0000000000000001  d17 0000000000000007
08-23 16:57:05.841: I/DEBUG(2543):     d18 0000000000000025  d19 0000000008000005
08-23 16:57:05.841: I/DEBUG(2543):     d20 0000000000ffffff  d21 0000000000000005
08-23 16:57:05.841: I/DEBUG(2543):     d22 0000000009000000  d23 c042000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d24 0000000000000000  d25 0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d26 0000000000000320  d27 0000000000000001
08-23 16:57:05.841: I/DEBUG(2543):     d28 3ff0000000000000  d29 0000000000000000
08-23 16:57:05.841: I/DEBUG(2543):     d30 0000000000000000  d31 c042000000000000
08-23 16:57:05.846: I/DEBUG(2543):     scr 60000010
08-23 16:57:05.846: I/DEBUG(2543): backtrace:
08-23 16:57:05.846: I/DEBUG(2543):     #00  pc 00036154  /data/app-lib/com.dragondevelopers.testwebrtc-11/libjingle_peerconnection_so.so (Java_org_webrtc_DataChannel_registerObserverNative+207)
08-23 16:57:05.846: I/DEBUG(2543):     #01  pc 0001e84c  /system/lib/libdvm.so (dvmPlatformInvoke+112)
08-23 16:57:05.846: I/DEBUG(2543):     #02  pc 0004f28b  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
08-23 16:57:05.851: I/DEBUG(2543):     #03  pc 00050f19  /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+256)
08-23 16:57:05.851: I/DEBUG(2543):     #04  pc 00027c60  /system/lib/libdvm.so
08-23 16:57:05.851: I/DEBUG(2543):     #05  pc 0002ec9c  /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
08-23 16:57:05.851: I/DEBUG(2543):     #06  pc 0002c300  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
08-23 16:57:05.851: I/DEBUG(2543):     #07  pc 000618f1  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
08-23 16:57:05.851: I/DEBUG(2543):     #08  pc 00061915  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
08-23 16:57:05.851: I/DEBUG(2543):     #09  pc 00056603  /system/lib/libdvm.so
08-23 16:57:05.851: I/DEBUG(2543):     #10  pc 0000d280  /system/lib/libc.so (__thread_entry+72)
08-23 16:57:05.851: I/DEBUG(2543):     #11  pc 0000d418  /system/lib/libc.so (pthread_create+240)
08-23 16:57:05.851: I/DEBUG(2543): stack:
08-23 16:57:05.851: I/DEBUG(2543):          7cefb930  7caeca38  
08-23 16:57:05.851: I/DEBUG(2543):          7cefb934  7cefb94c  [stack:15899]
08-23 16:57:05.851: I/DEBUG(2543):          7cefb938  00000000  
08-23 16:57:05.851: I/DEBUG(2543):          7cefb93c  4172e5dd  /system/lib/libdvm.so
08-23 16:57:05.851: I/DEBUG(2543):          7cefb940  00000000  
08-23 16:57:05.851: I/DEBUG(2543):          7cefb944  4172eaf3  /system/lib/libdvm.so
08-23 16:57:05.851: I/DEBUG(2543):          7cefb948  7caecf18  
08-23 16:57:05.851: I/DEBUG(2543):          7cefb94c  7caeca38  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb950  7caecf18  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb954  77a456ab  /data/app-lib/com.dragondevelopers.testwebrtc-11/libjingle_peerconnection_so.so
08-23 16:57:05.856: I/DEBUG(2543):          7cefb958  00000008  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb95c  77a469f9  /data/app-lib/com.dragondevelopers.testwebrtc-11/libjingle_peerconnection_so.so
08-23 16:57:05.856: I/DEBUG(2543):          7cefb960  7cefb974  [stack:15899]
08-23 16:57:05.856: I/DEBUG(2543):          7cefb964  7cb05b98  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb968  7caecf18  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb96c  77a4b153  /data/app-lib/com.dragondevelopers.testwebrtc-11/libjingle_peerconnection_so.so (Java_org_webrtc_DataChannel_registerObserverNative+206)
08-23 16:57:05.856: I/DEBUG(2543):     #00  7cefb970  4009e000  /system/lib/libc.so
08-23 16:57:05.856: I/DEBUG(2543):          7cefb974  696e693c  /dev/ashmem/dalvik-mark-stack (deleted)
08-23 16:57:05.856: I/DEBUG(2543):          7cefb978  7c003e74  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb97c  7cb0c8b0  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb980  7cb0df48  
08-23 16:57:05.856: I/DEBUG(2543):          7cefb984  7cefb97a  [stack:15899]
08-23 16:57:05.856: I/DEBUG(2543):          7cefb988  7cefb974  [stack:15899]
08-23 16:57:05.856: I/DEBUG(2543):          7cefb98c  654d6e6f  /dev/ashmem/dalvik-mark-stack (deleted)
08-23 16:57:05.856: I/DEBUG(2543):          7cefb990  67617373  /dev/ashmem/dalvik-mark-stack (deleted)
08-23 16:57:05.856: I/DEBUG(2543):          7cefb994  40060065  /system/lib/libc.so
08-23 16:57:05.856: I/DEBUG(2543):          7cefb998  4009e000  /system/lib/libc.so
08-23 16:57:05.856: I/DEBUG(2543):          7cefb99c  7cefb995  [stack:15899]
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9a0  7cefb98c  [stack:15899]
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9a4  74536e6f  /system/lib/libwebviewchromium.so
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9a8  43657461  /dev/ashmem/dalvik-heap (deleted)
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9ac  676e6168  /dev/ashmem/dalvik-mark-stack (deleted)
08-23 16:57:05.861: I/DEBUG(2543):          ........  ........
08-23 16:57:05.861: I/DEBUG(2543):     #01  7cefb9d8  7cdfce4c  
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9dc  00000001  
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9e0  7787dd97  /data/dalvik-cache/data@app@com.dragondevelopers.testwebrtc-11.apk@classes.dex
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9e4  431608d8  /dev/ashmem/dalvik-heap (deleted)
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9e8  400a2384  
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9ec  4173328f  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+402)
08-23 16:57:05.861: I/DEBUG(2543):     #02  7cefb9f0  7cdfce4c  
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9f4  7787dd95  /data/dalvik-cache/data@app@com.dragondevelopers.testwebrtc-11.apk@classes.dex
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9f8  77a4b085  /data/app-lib/com.dragondevelopers.testwebrtc-11/libjingle_peerconnection_so.so (Java_org_webrtc_DataChannel_registerObserverNative)
08-23 16:57:05.861: I/DEBUG(2543):          7cefb9fc  7caeca48  
08-23 16:57:05.861: I/DEBUG(2543):          7cefba00  7caeca38  
08-23 16:57:05.861: I/DEBUG(2543):          7cefba04  43160a20  /dev/ashmem/dalvik-heap (deleted)
08-23 16:57:05.861: I/DEBUG(2543):          7cefba08  00000000  
08-23 16:57:05.861: I/DEBUG(2543):          7cefba0c  00000000  
08-23 16:57:05.861: I/DEBUG(2543):          7cefba10  7760348c  /data/dalvik-cache/data@app@com.dragondevelopers.testwebrtc-11.apk@classes.dex
08-23 16:57:05.866: I/DEBUG(2543):          7cefba14  400a2384  
08-23 16:57:05.866: I/DEBUG(2543):          7cefba18  43046230  /dev/ashmem/dalvik-heap (deleted)
08-23 16:57:05.866: I/DEBUG(2543):          7cefba1c  6dc9a0b8  /dev/ashmem/dalvik-LinearAlloc (deleted)
08-23 16:57:05.866: I/DEBUG(2543):          7cefba20  00000000  
08-23 16:57:05.866: I/DEBUG(2543):          7cefba24  7cefba40  [stack:15899]
08-23 16:57:05.866: I/DEBUG(2543):          7cefba28  43160b88  /dev/ashmem/dalvik-heap (deleted)
08-23 16:57:05.866: I/DEBUG(2543):          7cefba2c  4178194e  /system/lib/libdvm.so
08-23 16:57:05.866: I/DEBUG(2543):          ........  ........
08-23 16:57:05.871: I/DEBUG(2543): memory near r1:
08-23 16:57:05.871: I/DEBUG(2543):     7cb05b78 7c7d6168 7c7d61e8 75af8944 75af8938  
08-23 16:57:05.871: I/DEBUG(2543):     7cb05b88 00000008 00000002 42040000 00000023  
08-23 16:57:05.871: I/DEBUG(2543):     7cb05b98 77d4a058 1d2004ce 1d2004d2 1d2004d6