我在Android上对QuickBlox视频客户端进行原型设计。为了测试它,我现在只需要接收电话的代码,并使用JavaScript测试客户端(我的帐户中有硬连线用户)来生成电话。我的代码基于QuickBlox Android教程(适用于' new' web-rtc应用程序)。
基本上一切似乎都很顺利(见下面的日志)一段时间。通话进入平板电脑并调用 acceptCall (以空地图作为参数)。调用 onLocalVideoTrackReceive ,打开平板电脑的摄像头(并在UI中显示本地视图)。但是,即使调用了acceptCall
,客户端仍会响铃,回调onRemoteVideoTrackReceived
永远不会被调用。
平板电脑应用不会崩溃。我很高兴地记录了它使用相机的事实,但没有其他事情发生。最后,我手动挂断了客户端。
18:35:26.770 15909-16114/com.coms D/QBASDK﹕ ========================================================= === REQUEST ==== 5e751fe9-4186-445a-9ebc-9008143860c6 === REQUEST POST https://api.quickblox.com/session.json HEADERS QuickBlox-REST-API-Version=0.1.1 QB-SDK=Android 2.2.6 PARAMETERS application_id=25788 auth_key=XXXXXXXXXXXX nonce=-1153424146 timestamp=1437528926 user[login]=YYYYYYYYYYYYY user[password]=ZZZZZZZZZZZZZZZZZ signature=WWWWWWWWWWWWW INLINE POST https://api.quickblox.com/session.json?application_id=25788&auth_key=xcA5Xc2R53Cgrz3&nonce=-1153424146×tamp=1437528926&user[login]=XXXXXXXXXXXXXXXXXXXXXX&user[password]=YYYYYYYYYYY& signature=WWWWWWWWWWWWWWWW 18:35:27.296 15909-16114/com.coms D/QBASDK﹕ ********************************************************* *** RESPONSE *** 5e751fe9-4186-445a-9ebc-9008143860c6 *** STATUS : 201 HEADERS Access-Control-Allow-Origin=* Cache-Control=max-age=0, private, must-revalidate Connection=keep-alive Content-Type=application/json; charset=utf-8 Date=Wed, 22 Jul 2015 01:35:27 GMT ETag="381f79ac0b50dfd6332d658570ed1c61" QB-Token-ExpirationDate=2015-07-22 03:35:27 UTC QuickBlox-REST-API-Version=0.1.1 Server=nginx/1.0.15 Status=201 Created Transfer-Encoding=chunked X-Rack-Cache=invalidate, pass X-Request-Id=a1a2781b1ab340fd1e462e200e627770 X-Runtime=0.026241 X-UA-Compatible=IE=Edge,chrome=1 BODY '{"session":{"_id":"55aef35f535c126116002461","application_id":XXXXXX,"created_at":"2015-07-22T01:35:27Z","device_id":0,"nonce":-1153424146,"token":"d5678a7685eec907f6226591e4031cf569a7a973","ts":1437528926,"updated_at":"2015-07-22T01:35:27Z","user_id":4268341,"id":5595}}' 18:35:27.369 15909-16114/com.coms D/QuickBloxService﹕ got session QBSession{token='d5678a7685eec907f6226591e4031cf569a7a973', appId=25788, userId=4268341, deviceId=0, timestamp=1437528926, nonce=-1153424146} 18:35:28.388 15909-16114/com.coms D/RTCClient﹕ Create INSTANCE 18:35:28.389 15909-16114/com.coms D/RTCClient﹕ Init client tasks EXECUTOR 18:35:28.389 15909-16114/com.coms D/LooperExecutor﹕ Request Looper start. On QBRTCClient 18:35:28.404 15909-16198/com.coms D/LooperExecutor﹕ Looper thread started. 18:35:28.425 15909-16114/com.coms D/RTCClient﹕ ADD CALLBACK com.coms.service.QuickBloxService@2039de4e 18:35:28.426 15909-16114/com.coms D/RTCClient﹕ ADD CALLBACK com.coms.service.QuickBloxService@2039de4e 18:35:28.426 15909-16114/com.coms E/MsgProcessor﹕ Try to add null SmackSignallingProcessorCallback listener 18:35:28.431 15909-16183/com.coms D/SMACK﹕ RCV (0): 18:35:28.464 15909-15924/com.coms I/art﹕ Background sticky concurrent mark sweep GC freed 32529(2033KB) AllocSpace objects, 8(151KB) LOS objects, 14% free, 14MB/16MB, paused 5.004ms total 85.510ms 18:36:28.318 15909-16182/com.coms D/SMACK﹕ SENT (0): 18:36:28.411 15909-16183/com.coms D/SMACK﹕ RCV (0): 18:36:32.353 15909-16183/com.coms D/SMACK﹕ RCV (0): WebRTCVideoChatcall14375289842651v=0 o=mozilla...THIS_IS_SDPARTA-39.0 4294967295 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 C0:E6:07:F1:15:72:CC:24:93:7D:D9:DA:D2:7D:A4:42:7E:41:F2:6E:9F:9A:7B:98:49:A7:06:EE:70:AC:4D:2E a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle a=msid-semantic:WMS * m=audio 9 RTP/SAVPF 109 9 0 8 c=IN IP4 0.0.0.0 a=sendrecv a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=ice-pwd:1206bfba48e268d7e5d6af337cf5da23 a=ice-ufrag:e0be8eb3 a=mid:sdparta_0 a=msid:{1947eb01-41ad-4ce1-8481-82b006a3c7ef} {6f381987-02b3-44ef-a43d-5e347bbfc247} a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=setup:actpass a=ssrc:1080179391 cname:{917d1c3d-afc8-4168-8dbf-e2d3ac9144f0} m=video 9 RTP/SAVPF 120 126 97 c=IN IP4 0.0.0.0 a=sendrecv a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=ice-pwd:1206bfba48e268d7e5d6af337cf5da23 a=ice-ufrag:e0be8eb3 a=mid:sdparta_1 a=msid:{1947eb01-41ad-4ce1-8481-82b006a3c7ef} {9d584e62-e48e-4ce2-bd98-77b0c1863383} a=rtcp-fb:120 nack a=rtcp-fb:120 nack pli a=rtcp-fb:120 ccm fir a=rtcp-fb:126 nack a=rtcp-fb:126 nack pli a=rtcp-fb:126 ccm fir a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=rtcp-fb:97 ccm fir a=rtcp-mux a=rtpmap:120 VP8/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=setup:actpass a=ssrc:2574623186 cname:{917d1c3d-afc8-4168-8dbf-e2d3ac9144f0} web43084764268341 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕ Start cycle 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕ Tag type is: 2,name is opponentID 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕ Tag type is: 4, value is 4268341 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕ Tag type is: 3,name is opponentID 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕ Finish cycle 18:36:32.356 15909-16183/com.coms D/Parser -->>﹕ Tag is 4268341 18:36:32.356 15909-16183/com.coms D/Parsed message﹕ opponentsIDs --> 4268341 18:36:32.379 15909-16188/com.coms D/RTCClient﹕ New signalling was added 18:36:32.422 15909-16188/com.coms E/QuickBloxService﹕ Added Signaling com.quickblox.chat.QBWebRTCSignaling@23080481 18:36:32.425 15909-16188/com.coms D/QBRTCSessionDescription﹕ Was created QBRTCSessionDescription{sessionID='1437528984265', callerID='4308476', opponents=[4268341], conferenceType=QBConferenceType{value='1'}, userInfo={}} 18:36:32.426 15909-16188/com.coms D/MsgProcessor﹕ notify income call 18:36:32.431 15909-16188/com.coms D/LooperExecutor﹕ Request Looper execute. 18:36:32.431 15909-16188/com.coms D/LooperExecutor﹕ POST.Run on thread:1250 18:36:32.434 15909-16198/com.coms D/RTCClient﹕ Call offer message received 18:36:32.435 15909-16198/com.coms D/RTCClient﹕ createSessionWithDescription 18:36:32.451 15909-16198/com.coms D/EglBase﹕ SDK version: 22 18:36:32.453 15909-16198/com.coms D/*WEBRTCN*﹕ SetRenderAndroidVM 18:36:32.453 15909-16198/com.coms D/JVM﹕ JVM::Initialize@[tid=16198] 18:36:32.453 15909-16198/com.coms D/JVM﹕ JVM::JVM@[tid=16198] 18:36:32.454 15909-16198/com.coms D/MediaCodecVideo﹕ SetAndroidObjects for surface decoding. 18:36:32.454 15909-16198/com.coms D/MediaCodecVideo﹕ NULL VideoDecoder EGL context - HW surface decoding is disabled. 18:36:32.476 15909-17205/com.coms D/JVM﹕ AttachCurrentThreadIfNeeded::ctor@[tid=17205] 18:36:32.476 15909-17205/com.coms D/JVM﹕ Attaching thread to JVM 18:36:32.476 15909-17205/com.coms D/JVM﹕ JVM::environment@[tid=17205] .... Lots of audio and video setup 18:36:32.486 15909-17205/com.coms D/AudioManager﹕ Init@[tid=17205] 18:36:32.486 15909-17205/com.coms D/WebRtcAudioManager﹕ init@[name=Thread-1251, id=1251] 18:36:32.487 15909-17205/com.coms D/WebRtcAudioManager﹕ audio mode is: MODE_NORMAL 18:36:32.489 15909-17205/com.coms D/AudioRecordJni﹕ EnableBuiltInAEC@[tid=17205] 18:36:32.489 15909-17205/com.coms D/WebRtcAudioRecord﹕ EnableBuiltInAEC(true) 18:36:32.494 15909-17205/com.coms D/AudioRecordJni﹕ EnableBuiltInAEC@[tid=17205] 18:36:32.494 15909-17205/com.coms D/WebRtcAudioRecord﹕ EnableBuiltInAEC(true) 18:36:32.498 15909-16198/com.coms D/RTCClient﹕ Peer connection factory initiated 18:36:32.503 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ Create looper executor on thread: 1250 18:36:32.503 15909-16198/com.coms D/LooperExecutor﹕ Request Looper start. On QBPeerChannel 18:36:32.504 15909-17214/com.coms D/LooperExecutor﹕ Looper thread started. 18:36:32.505 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Make new channel:com.quickblox.videochat.webrtc.QBPeerChannel@188f6926 18:36:32.505 15909-16198/com.coms D/RTCClient﹕ Notify all session calback listeners about session creation 18:36:32.505 15909-16198/com.coms D/SessionClosedListener﹕ onReceiveNewSession 18:36:32.528 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:36:32.528 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ acceptCall 18:36:32.528 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ startAsAnswer 18:36:32.528 15909-16198/com.coms D/PeerChannelLifeCycleTimers﹕ Stop WaitTimer 18:36:32.528 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:36:32.528 15909-16198/com.coms D/LooperExecutor﹕ POST.Run on thread:1254 18:36:32.528 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ Try to set null remote sdp 18:36:32.529 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ createConnection 18:36:32.529 15909-16198/com.coms D/LooperExecutor﹕ EXECUTE.Run on thread:1250 18:36:32.529 15909-16198/com.coms E/QuickBloxService﹕ Accepted Incoming Call: QBRTCSession{sessionDescription=QBRTCSessionDescription{sessionID='1437528984265', callerID='4308476', opponents=[4268341], conferenceType=QBConferenceType{value='1'}, userInfo={}}, getMediaStreamManager=com.quickblox.videochat.webrtc.QBMediaStreamManager@2fc617b, channels={4308476=com.quickblox.videochat.webrtc.QBPeerChannel@188f6926}, signalChannel=com.quickblox.videochat.webrtc.QBSignalChannel@b4b2b98, chatCallbackList=[com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113, com.coms.service.QuickBloxService@2039de4e], audioEnabled=false, videoEnabled=false, state=QB_RTC_SESSION_ACTIVE, isNeedClose=false} false false 18:36:32.535 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Process income call from 4308476 18:36:32.535 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ set remote sdp v=0 o=mozilla...THIS 18:36:32.764 15909-15909/com.coms D/RTCClient﹕ ADD CALLBACK com.coms.VideoActivity@265390e3 18:36:32.768 15909-17214/com.coms D/RTCClient.QBRTCSession﹕ Local Stream Add 18:36:32.768 15909-17214/com.coms D/RTCClient.QBMediaStrMgr﹕ Init local media stream 18:36:32.768 15909-17214/com.coms D/RTCClient.QBMediaStrMgr﹕ Add video stream 18:36:32.772 15909-17214/com.coms D/VideoCapturerAndroid﹕ VideoCapturerAndroid 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid﹕ init: Camera 1, Facing front, Orientation 270 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid﹕ Get supported formats. 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid﹕ Opening camera 1 18:36:32.873 15909-17223/com.coms D/QBASDK﹕ onSurfaceChanged 18:36:32.886 15909-17224/com.coms D/QBASDK﹕ onSurfaceChanged 18:36:33.304 15909-15909/com.coms E/ComMain﹕ onStop 18:36:33.690 15909-17214/com.coms D/VideoCapturerAndroid﹕ Opening camera 0 18:36:34.056 15909-17214/com.coms D/VideoCapturerAndroid﹕ Get supported formats done. 18:36:34.066 15909-17205/com.coms D/VideoCapturerAndroid﹕ startCapture requested: 640x480@30 18:36:34.072 15909-17284/com.coms D/VideoCapturerAndroid﹕ Opening camera 1 18:36:34.076 15909-17214/com.coms D/LooperExecutor﹕ Request Looper execute. 18:36:34.076 15909-17214/com.coms D/LooperExecutor﹕ POST.Run on thread:1250 18:36:34.077 15909-16198/com.coms E/***********﹕ Got local tracker 18:36:34.082 15909-17214/com.coms D/AppRTCAudioManager﹕ Android SDK: 22, Release: 5.1.1, Brand: google, Device: flo, Id: LMY48G, Hardware: flo, Manufacturer: asus, Model: Nexus 7, Product: razor 18:36:34.082 15909-17214/com.coms D/AppRTCAudioManager﹕ init 18:36:35.195 15909-17224/com.coms D/QBASDK﹕ QBGLVideoView 18:36:36.251 15909-17224/com.coms D/QBASDK﹕ QBGLVideoView 18:36:37.318 15909-17224/com.coms D/QBASDK﹕ QBGLVideoView 18:36:38.337 15909-17224/com.coms D/QBASDK﹕ QBGLVideoView 18:36:39.349 15909-17224/com.coms D/QBASDK﹕ QBGLVideoView 18:36:39.873 15909-17284/com.coms D/VideoCapturerAndroid﹕ Camera fps: 11. CaptureBuffers: 3.0. Pending buffers: [] 18:37:02.457 15909-16183/com.coms D/SMACK﹕ RCV (0): manuallyWebRTCVideoChathangUp1437528984265 18:37:02.458 15909-16188/com.coms D/MsgProcessor﹕ Wrong caller id was set 18:37:02.459 15909-16188/com.coms D/QBRTCSessionDescription﹕ Was created QBRTCSessionDescription{sessionID='1437528984265', callerID='null', opponents=null, conferenceType=QBConferenceType{value='2'}, userInfo={}} 18:37:02.459 15909-16188/com.coms D/MsgProcessor﹕ notify stop call 18:37:02.459 15909-16188/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.459 15909-16188/com.coms D/LooperExecutor﹕ POST.Run on thread:1250 18:37:02.462 15909-16198/com.coms D/RTCClient﹕ Stop message received 18:37:02.462 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Process hang up from 4308476 18:37:02.462 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Сhannel to hang up exists. Hangup task will be add to queue 18:37:02.462 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.462 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ Call procHungUp 18:37:02.462 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕ Method PeerCOnnection.close started 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers﹕ Stop DialingTimer 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers﹕ Stop WaitTimer 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers﹕ Stop DisconnectTimer 18:37:02.463 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.463 15909-16198/com.coms D/LooperExecutor﹕ POST.Run on thread:1254 18:37:02.463 15909-16198/com.coms D/LooperExecutor﹕ Request Looper stop. On QBPeerChannel 18:37:02.463 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify users about hangUp session in count of 2 18:37:02.463 15909-16198/com.coms D/SessionClosedListener﹕ onReceiveHangUpFromUser 18:37:02.464 15909-16198/com.coms E/QuickBloxService﹕ onReceiveHangUpFromUser 18:37:02.464 15909-16198/com.coms D/LooperExecutor﹕ EXECUTE.Run on thread:1250 18:37:02.464 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ Closing peer add in task queue. 18:37:02.464 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ Closing peer connection start. 18:37:02.465 15909-17206/com.coms D/RTCClient.QBPeerChannel.Observer:﹕ onIceConnectionChange to CLOSED 18:37:02.465 15909-17206/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.465 15909-17206/com.coms D/LooperExecutor﹕ POST.Run on thread:1254 18:37:02.466 15909-17206/com.coms D/RTCClient.QBPeerChannel.Observer:﹕ onIceGatheringChange to COMPLETE 18:37:02.466 15909-17206/com.coms D/RTCClient.QBPeerChannel.Observer:﹕ onSignalingChange to CLOSED 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ Closing peer connection done. 18:37:02.480 15909-17214/com.coms D/LooperExecutor﹕ Looper thread finished. 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ PeerChannel succesfulle stoped 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ Call method onChannelConnectionClosed on PeerChannel callback 18:37:02.480 15909-17214/com.coms D/RTCClient.QBRTCSession﹕ onChannelConnectionClosed add in executor queue 18:37:02.481 15909-17214/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.481 15909-17214/com.coms D/LooperExecutor﹕ POST.Run on thread:1250 18:37:02.481 15909-17214/com.coms D/RTCClient.QBPeerChannel.Observer:﹕ onIceConnectionChange 18:37:02.481 15909-17214/com.coms D/RTCClient.QBPeerChannel.Observer:﹕ IceConnectionState: CLOSED 18:37:02.481 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕ onChannelConnectionClosed called on QBRTCSession{sessionDescription=QBRTCSessionDescription{sessionID='1437528984265', callerID='4308476', opponents=[4268341], conferenceType=QBConferenceType{value='1'}, userInfo={}}, getMediaStreamManager=com.quickblox.videochat.webrtc.QBMediaStreamManager@2fc617b, channels={4308476=com.quickblox.videochat.webrtc.QBPeerChannel@188f6926}, signalChannel=com.quickblox.videochat.webrtc.QBSignalChannel@b4b2b98, chatCallbackList=[com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113, com.coms.service.QuickBloxService@2039de4e], audioEnabled=false, videoEnabled=false, state=QB_RTC_SESSION_ACTIVE, isNeedClose=false} 18:37:02.481 15909-17214/com.coms D/RTCClient.QBRTCSession﹕ onChannelConnectionClosed add in executor queue 18:37:02.481 15909-17214/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.481 15909-17214/com.coms D/LooperExecutor﹕ POST.Run on thread:1250 18:37:02.482 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Srat process onChannelConnectionClosed 18:37:02.483 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Check is session need close 18:37:02.483 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Session isNeedToClose true 18:37:02.484 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Start session close. 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Set session 1437528984265 with state QB_RTC_SESSION_ACTIVE to CLOSE 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Closing mediaStreamManager. 18:37:02.484 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Video source start dispose 18:37:02.484 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Video source is org.webrtc.VideoSource@3bd13fd2 18:37:02.491 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Video source state is LIVE 18:37:02.492 15909-17205/com.coms D/VideoCapturerAndroid﹕ stopCapture 18:37:02.493 15909-17284/com.coms D/VideoCapturerAndroid﹕ stopCaptureOnCameraThread 18:37:02.493 15909-17284/com.coms D/VideoCapturerAndroid﹕ Stop preview. 18:37:03.055 15909-17284/com.coms D/VideoCapturerAndroid﹕ stopReturnBuffersToCamera called. All buffers have been returned. 18:37:03.055 15909-17284/com.coms D/Camera﹕ app passed NULL surface 18:37:03.056 15909-17284/com.coms D/VideoCapturerAndroid﹕ Release camera. 18:37:03.057 15909-15925/com.coms W/Camera-JNI﹕ callback on dead camera object 18:37:03.057 15909-15925/com.coms W/Camera-JNI﹕ callback on dead camera object 18:37:03.604 15909-17205/com.coms D/VideoCapturerAndroid﹕ stopCapture done 18:37:03.613 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Video source disposed 18:37:03.613 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Audio manager start close 18:37:03.613 15909-16198/com.coms D/AppRTCAudioManager﹕ closePeerConnection 18:37:03.624 15909-16198/com.coms D/RTCClient.QBMediaStrMgr﹕ Audio manager closed 18:37:03.624 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callbacks in count of:2 18:37:03.624 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callback: com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113 18:37:03.624 15909-16198/com.coms D/RTCClient﹕ Closing peer connection factory. 18:37:03.625 15909-17205/com.coms D/OpenSLESPlayer﹕ Terminate@[tid=17205] 18:37:03.625 15909-17205/com.coms D/OpenSLESPlayer﹕ StopPlayout@[tid=17205] 18:37:03.625 15909-17205/com.coms D/AudioRecordJni﹕ Terminate@[tid=17205] 18:37:03.625 15909-17205/com.coms D/AudioRecordJni﹕ StopRecording@[tid=17205] 18:37:03.625 15909-17205/com.coms D/AudioManager﹕ Close@[tid=17205] 18:37:03.626 15909-17205/com.coms D/WebRtcAudioManager﹕ dispose@[name=Thread-1251, id=1251] 18:37:03.626 15909-17205/com.coms D/AudioRecordJni﹕ ~dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/AudioRecordJni﹕ Terminate@[tid=17205] 18:37:03.626 15909-17205/com.coms D/AudioRecordJni﹕ StopRecording@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ GlobalRef::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ NativeRegistration::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ JNIEnvironment::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ AttachCurrentThreadIfNeeded::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ Terminate@[tid=17205] 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ StopPlayout@[tid=17205] 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ DestroyAudioPlayer 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ DestroyMix 18:37:03.626 15909-17205/com.coms D/OpenSLESPlayer﹕ DestroyEngine 18:37:03.626 15909-17205/com.coms D/AudioManager﹕ ~dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/AudioManager﹕ Close@[tid=17205] 18:37:03.626 15909-17205/com.coms D/AudioManager﹕ JavaAudioManager::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ GlobalRef::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ NativeRegistration::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ JNIEnvironment::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ AttachCurrentThreadIfNeeded::dtor@[tid=17205] 18:37:03.626 15909-17205/com.coms D/JVM﹕ Detaching thread from JVM 18:37:03.640 15909-17206/com.coms W/art﹕ Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[28,tid=17206,Native,Thread*=0xa211c000,peer=0x12ea60a0,"signaling_threa - 17206"] 18:37:03.641 15909-16198/com.coms D/RTCClient﹕ Closing session done. 18:37:03.641 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callback: com.coms.service.QuickBloxService@2039de4e 18:37:03.642 15909-16198/com.coms E/QuickBloxService﹕ onSessionClosed 18:37:03.642 15909-16198/com.coms D/LooperExecutor﹕ EXECUTE.Run on thread:1250 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Srat process onChannelConnectionClosed 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Check is session need close 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Session isNeedToClose true 18:37:03.642 15909-16198/com.coms D/LooperExecutor﹕ Request Looper execute. 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Start session close. 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Closing mediaStreamManager. 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callbacks in count of:2 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callback: com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113 18:37:03.642 15909-16198/com.coms D/RTCClient﹕ Closing peer connection factory. 18:37:03.642 15909-16198/com.coms D/RTCClient﹕ Nothing to close factory was null 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕ Notify sesions callback: com.coms.service.QuickBloxService@2039de4e 18:37:03.642 15909-16198/com.coms E/QuickBloxService﹕ onSessionClosed 18:37:03.642 15909-16198/com.coms D/LooperExecutor﹕ EXECUTE.Run on thread:1250
(启用聊天调试)。我认为在18:37:02.458出现问题,其中日志中设置了错误的来电显示'和02.459具有带空null callerID的QBRTCSessionDescription。然后MsgProcessor给出一个“通知停止呼叫”#39;哪个不好。
后来我挂断了发送方,显然没有发生任何事情。
在我看来,QB会话和聊天会话都很好,并且RTC信令似乎正常工作(如果我用rejectCall替换acceptCall,客户端立即挂起)但呼叫从未完全通过。
关于QuickBlox的文档并不是很好,但是我的代码非常接近他们的样本。如果日志中有线索我就无法理解。有没有人有任何想法?
TNX
答案 0 :(得分:0)
今天遇到同样的问题;更新到最新的SDK后。
您还需要从SDK更新jniLibs,在我的情况下,它是 libjingle_peerconnection_so
答案 1 :(得分:0)
Sample-webrtc-android Prepare your application for Android SDK
您可以在Quickblox doc:Add signaling manager
中找到此标题如果您将这样的文件添加到项目中,那么请检查一下。
QBChatService.getInstance().getVideoChatWebRTCSignalingManager().addSignalingManagerListener(new QBVideoChatSignalingManagerListener()
{
@Override
public void signalingCreated(QBSignaling qbSignaling, boolean createdlocally)
{
if (!createdlocally)
{
rtcClient.addSignaling((QBWebRTCSignaling) qbSignaling);
}
}
});