Quickblox Android web-rtc -- onRemoteVideoTrackReceive 未调用

Posted

技术标签:

【中文标题】Quickblox Android web-rtc -- onRemoteVideoTrackReceive 未调用【英文标题】:Quickblox Android web-rtc -- onRemoteVideoTrackReceive not called 【发布时间】:2015-07-22 03:09:25 【问题描述】:

我正在为 android 上的 QuickBlox Video 客户端制作原型。为了测试它,我现在只有 receive 调用的代码,并且正在使用 javascript 测试客户端(我的帐户中有硬连线用户)来 generate 调用。我的代码基于 QuickBlox Android 教程(用于“新”web-rtc 应用程序)。

在一段时间内,基本上一切似乎都很顺利(见下面的日志)。该调用通过平板电脑并调用 acceptCall(以空地图作为参数)。 onLocalVideoTrackReceive 被调用以打开平板电脑的摄像头(并且本地视图出现在 UI 中)。然而,即使 acceptCall 已被调用,客户端仍会响铃并且 回调 onRemoteVideoTrackReceived 永远不会被调用

平板电脑应用不会崩溃。我很高兴地记录了它正在使用它的相机的事实,但没有其他任何事情发生。最后,我手动挂断了客户端。

18:35:26.770 15909-16114/com.coms D/QBASDK:================================= ======================== === 请求 ==== 5e751fe9-4186-445a-9ebc-9008143860c6 === 要求 发布 https://api.quickblox.com/session.json 标题 QuickBlox-REST-API-版本=0.1.1 QB-SDK=Android 2.2.6 参数 application_id=25788 auth_key=XXXXXXXXXXXX 随机数=-1153424146 时间戳=1437528926 用户[登录]=YYYYYYYYYYYY 用户[密码]=ZZZZZZZZZZZZZZZZZ 签名=WWWWWWWWWWWW 排队 POST https://api.quickblox.com/session.json?application_id=25788&auth_key=xcA5Xc2R53Cgrz3&nonce=-1153424146&timestamp=1437528926&user[login]=XXXXXXXXXXXXXXXXXXXXXX&user[password]=YYYYYYYYYYY& 签名=WWWWWWWWWWWWWWWW 18:35:27.296 15909-16114/com.coms D/QBASDK: ********************************** *********************** *** 回复 *** 5e751fe9-4186-445a-9ebc-9008143860c6 *** 状态:201 标题 访问控制允许来源=* Cache-Control=max-age=0,私有,必须重新验证 连接=保持活动状态 内容类型=应用程序/json;字符集=utf-8 日期=格林威治标准时间 2015 年 7 月 22 日星期三 01:35:27 ETag="381f79ac0b50dfd6332d658570ed1c61" QB-Token-ExpirationDate=2015-07-22 03:35:27 UTC QuickBlox-REST-API-版本=0.1.1 服务器=nginx/1.0.15 状态=201 已创建 传输编码=分块 X-Rack-Cache=无效,通过 X-请求-Id=a1a2781b1ab340fd1e462e200e627770 X-运行时=0.026241 X-UA 兼容=IE=Edge,chrome=1 身体 '"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: 得到会话 QBSessiontoken='d5678a7685eec907f6226591e4031cf569a7a973', appId=25788, userId=4268341, deviceId=0, 时间戳=14375289216, 14375284216, 18:35:28.388 15909-16114/com.coms D/RTCClient﹕创建实例 18:35:28.389 15909-16114/com.coms D/RTCClient:初始化客户端任务执行器 18:35:28.389 15909-16114/com.coms D/LooperExecutor:请求 Looper 启动。在 QBRTCClient 上 18:35:28.404 15909-16198/com.coms D/LooperExecutor﹕Looper 线程已启动。 18:35:28.425 15909-16114/com.coms D/RTCClient﹕添加回调 com.coms.service.QuickBloxService@2039de4e 18:35:28.426 15909-16114/com.coms D/RTCClient﹕添加回调 com.coms.service.QuickBloxService@2039de4e 18:35:28.426 15909-16114/com.coms E/MsgProcessor:尝试添加空 SmackSignallingProcessorCallback 监听器 18:35:28.431 15909-16183/com.coms D/SMACK: RCV (0): 18:35:28.464 15909-15924/com.coms I/art:后台粘性并发标记扫描 GC 释放 32529(2033KB) AllocSpace 对象,8(151KB) LOS 对象,14% 空闲,14MB/16MB,暂停 5.004ms 总计 85.510小姐 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 在 IP4 0.0.0.0 s=- t=0 0 a=发送接收 a=指纹: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=冰选项:涓流 a=msid 语义:WMS * m=音频 9 RTP/SAVPF 109 9 0 8 c=IN IP4 0.0.0.0 a=发送接收 a=extmap:1 urn:ietf:params:rtp-hdrext:s-s-rc-audio-level a=ice-pwd:1206bfba48e268d7e5d6af337cf5da23 a=冰-ufrag:e0be8eb3 a=mid:sdparta_0 a=msid:1947eb01-41ad-4ce1-8481-82b006a3c7ef 6f381987-02b3-44ef-a43d-5e347bbfc247 a=rtcp 多路复用器 a=rtpmap:109 作品/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=设置:actpass a=s-s-rc:1080179391 cname:917d1c3d-afc8-4168-8dbf-e2d3ac9144f0 m=视频 9 RTP/SAVPF 120 126 97 c=IN IP4 0.0.0.0 a=发送接收 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=冰-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 立方厘米冷杉 a=rtcp-fb:126 nack a=rtcp-fb:126 nack pli a=rtcp-fb:126 立方厘米冷杉 a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=rtcp-fb:97 ccm 冷杉 a=rtcp 多路复用器 a=rtpmap:120 VP8/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=设置:actpass a=s-s-rc:2574623186 cname:917d1c3d-afc8-4168-8dbf-e2d3ac9144f0 网络43084764268341 18:36:32.355 15909-16183/com.coms D/Parser -->>: 开始循环 18:36:32.355 15909-16183/com.coms D/Parser -->>: 标记类型为:2,名称为对手ID 18:36:32.355 15909-16183/com.coms D/Parser -->>﹕标签类型为:4,值为 4268341 18:36:32.355 15909-16183/com.coms D/Parser -->>: 标记类型为:3,名称为对手ID 18:36:32.355 15909-16183/com.coms D/Parser -->>: 完成周期 18:36:32.356 15909-16183/com.coms D/Parser -->>﹕标签是 4268341 18:36:32.356 15909-16183/com.coms D/Parsed message﹕对手ID --> 4268341 18:36:32.379 15909-16188/com.coms D/RTCClient: 添加了新信号 18:36:32.422 15909-16188/com.coms E/QuickBloxService﹕已添加信令 com.quickblox.chat.QBWebRTCSignaling@23080481 18:36:32.425 15909-16188/com.coms D/QBRTCSessionDescription﹕已创建 QBRTCSessionDescriptionsessionID='1437528984265', callerID='4308476',反对者=[4268341], ConferenceType=QBConferenceTypevalue='1', userInfo = 18:36:32.426 15909-16188/com.coms D/MsgProcessor﹕通知收款电话 18:36:32.431 15909-16188/com.coms D/LooperExecutor:请求 Looper 执行。 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﹕收到呼叫报价消息 18:36:32.435 15909-16198/com.coms D/RTCClient﹕createSessionWithDescription 18:36:32.451 15909-16198/com.coms D/EglBase: SDK 版本: 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 用于表面解码。 18:36:32.454 15909-16198/com.coms D/MediaCodecVideo: NULL VideoDecoder EGL 上下文 - 硬件表面解码已禁用。 18:36:32.476 15909-17205/com.coms D/JVM: AttachCurrentThreadIfNeeded::ctor@[tid=17205] 18:36:32.476 15909-17205/com.coms D/JVM: 将线程附加到 JVM 18:36:32.476 15909-17205/com.coms D/JVM: JVM::environment@[tid=17205] .... 大量的音频和视频设置 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:音频模式为: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﹕对等连接工厂已启动 18:36:32.503 15909-16198/com.coms D/RTCClient.QBPeerChannel:在线程上创建循环执行器:1250 18:36:32.503 15909-16198/com.coms D/LooperExecutor:请求 Looper 启动。在 QBPeerChannel 上 18:36:32.504 15909-17214/com.coms D/LooperExecutor﹕Looper 线程已启动。 18:36:32.505 15909-16198/com.coms D/RTCClient.QBRTCSession﹕制作新频道:com.quickblox.videochat.webrtc.QBPeerChannel@188f6926 18:36:32.505 15909-16198/com.coms D/RTCClient:通知所有会话回调侦听器有关会话创建 18:36:32.505 15909-16198/com.coms D/SessionClosedListener: onReceiveNewSession 18:36:32.528 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 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: 停止 WaitTimer 18:36:32.528 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 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:尝试设置空远程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:接受的来电:QBRTCSessionsessionDescription=QBRTCSessionDescriptionsessionID='1437528984265',callerID='4308476',对手=[4268341],conferenceType=QBConferenceTypevalue= '1',userInfo=,getMediaStreamManager=com.quickblox.videochat.webrtc.QBMediaStreamManager@2fc617b,频道=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:36:32.535 15909-16198/com.coms D/RTCClient.QBRTCSession﹕处理来自 4308476 的收入电话 18:36:32.535 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕设置远程 sdp v=0 o = mozilla ...这个 18:36:32.764 15909-15909/com.coms D/RTCClient: 添加回调 com.coms.VideoActivity@265390e3 18:36:32.768 15909-17214/com.coms D/RTCClient.QBRTCSession:本地流添加 18:36:32.768 15909-17214/com.coms D/RTCClient.QBMediaStrMgr:初始化本地媒体流 18:36:32.768 15909-17214/com.coms D/RTCClient.QBMediaStrMgr﹕添加视频流 18:36:32.772 15909-17214/com.coms D/VideoCapturerAndroid: VideoCapturerAndroid 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid:初始化:相机1,正面,方向270 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid:获取支持的格式。 18:36:32.773 15909-17214/com.coms D/VideoCapturerAndroid﹕打开相机 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: 打开相机 0 18:36:34.056 15909-17214/com.coms D/VideoCapturerAndroid:完成支持的格式。 18:36:34.066 15909-17205/com.coms D/VideoCapturerAndroid: startCapture 请求:640x480@30 18:36:34.072 15909-17284/com.coms D/VideoCapturerAndroid﹕打开相机 1 18:36:34.076 15909-17214/com.coms D/LooperExecutor:请求 Looper 执行。 18:36:34.076 15909-17214/com.coms D/LooperExecutor: POST.Run on thread:1250 18:36:34.077 15909-16198/com.coms E/***********﹕获得本地追踪器 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, 制造商: asus, 型号: Nexus 7、产品:剃须刀 18:36:34.082 15909-17214/com.coms D/AppRTCAAudioManager﹕初始化 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:相机fps:11。CaptureBuffers:3.0。待处理的缓冲区:[] 18:37:02.457 15909-16183/com.coms D/SMACK:RCV(0):手动WebRTCVideoChathangUp1437528984265 18:37:02.458 15909-16188/com.coms D/MsgProcessor:设置了错误的来电显示 18:37:02.459 15909-16188/com.coms D/QBRTCSessionDescription﹕已创建 QBRTCSessionDescriptionsessionID='1437528984265', callerID='null',反对者=null, ConferenceType=QBConferenceTypevalue='2', userInfo= 18:37:02.459 15909-16188/com.coms D/MsgProcessor﹕通知停止呼叫 18:37:02.459 15909-16188/com.coms D/LooperExecutor:请求 Looper 执行。 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:收到停止消息 18:37:02.462 15909-16198/com.coms D/RTCClient.QBRTCSession:进程从 4308476 挂断 18:37:02.462 15909-16198/com.coms D/RTCClient.QBRTCSession: Сhannel to hang up 存在。挂断任务将被添加到队列中 18:37:02.462 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 18:37:02.462 15909-16198/com.coms D/RTCClient.QBPeerChannel﹕呼叫 procHungUp 18:37:02.462 15909-16198/com.coms D/RTCClient.QBPeerChannel: 方法 PeerCONnection.close 开始 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers:停止拨号定时器 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers: 停止 WaitTimer 18:37:02.462 15909-16198/com.coms D/PeerChannelLifeCycleTimers:停止 DisconnectTimer 18:37:02.463 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 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:请求 Looper 停止。在 QBPeerChannel 上 18:37:02.463 15909-16198/com.coms D/RTCClient.QBRTCSession:通知用户挂断会话计数为 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:关闭对等体添加到任务队列中。 18:37:02.464 15909-17214/com.coms D/RTCClient.QBPeerChannel:关闭对等连接开始。 18:37:02.465 15909-17206/com.coms D/RTCClient.QBPeerChannel.Observer:: onIceConnectionChange 为 CLOSED 18:37:02.465 15909-17206/com.coms D/LooperExecutor:请求 Looper 执行。 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 为 CLOSED 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel:关闭对等连接完成。 18:37:02.480 15909-17214/com.coms D/LooperExecutor﹕Looper 线程已完成。 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel﹕PeerChannel 成功停止 18:37:02.480 15909-17214/com.coms D/RTCClient.QBPeerChannel: 在 PeerChannel 回调中调用 onChannelConnectionClosed 方法 18:37:02.480 15909-17214/com.coms D/RTCClient.QBRTCSession: onChannelConnectionClosed 添加到执行程序队列 18:37:02.481 15909-17214/com.coms D/LooperExecutor:请求 Looper 执行。 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 调用 QBRTCSessionsessionDescription=QBRTCSessionDescriptionsessionID='1437528984265', callerID='4308476',对手=[4268341], ConferenceType=QBConferenceTypevalue ='1',userInfo=,getMediaStreamManager=com.quickblox.videochat.webrtc.QBMediaStreamManager@2fc617b,频道=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=错误的 18:37:02.481 15909-17214/com.coms D/RTCClient.QBRTCSession: onChannelConnectionClosed 添加到执行程序队列 18:37:02.481 15909-17214/com.coms D/LooperExecutor:请求 Looper 执行。 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 进程 onChannelConnectionClosed 18:37:02.483 15909-16198/com.coms D/RTCClient.QBRTCSession﹕检查会话是否需要关闭 18:37:02.483 15909-16198/com.coms D/RTCClient.QBRTCSession: Session isNeedToClose true 18:37:02.484 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession:开始会话关闭。 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession:将会话 1437528984265 状态为 QB_RTC_SESSION_ACTIVE 设置为 CLOSE 18:37:02.484 15909-16198/com.coms D/RTCClient.QBRTCSession: 关闭 mediaStreamManager。 18:37:02.484 15909-16198/com.coms D/RTCClient.QBMediaStrMgr: 视频源开始处置 18:37:02.484 15909-16198/com.coms D/RTCClient.QBMediaStrMgr:视频源是 org.webrtc.VideoSource@3bd13fd2 18:37:02.491 15909-16198/com.coms D/RTCClient.QBMediaStrMgr: 视频源状态为 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﹕停止预览。 18:37:03.055 15909-17284/com.coms D/VideoCapturerAndroid: stopReturnBuffersToCamera 调用。所有缓冲区都已返回。 18:37:03.055 15909-17284/com.coms D/Camera:应用程序通过了NULL表面 18:37:03.056 15909-17284/com.coms D/VideoCapturerAndroid: 释放相机。 18:37:03.057 15909-15925/com.coms W/Camera-JNI:死机对象上的回调 18:37:03.057 15909-15925/com.coms W/Camera-JNI:死机对象上的回调 18:37:03.604 15909-17205/com.coms D/VideoCapturerAndroid: stopCapture 完成 18:37:03.613 15909-16198/com.coms D/RTCClient.QBMediaStrMgr: 视频源已处理 18:37:03.613 15909-16198/com.coms D/RTCClient.QBMediaStrMgr:音频管理器开始关闭 18:37:03.613 15909-16198/com.coms D/AppRTCAudioManager: closePeerConnection 18:37:03.624 15909-16198/com.coms D/RTCClient.QBMediaStrMgr:音频管理器已关闭 18:37:03.624 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调计数:2 18:37:03.624 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调:com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113 18:37:03.624 15909-16198/com.coms D/RTCClient:正在关闭对等连接工厂。 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:从 JVM 分离线程 18:37:03.640 15909-17206/com.coms W/art:本机线程在没有调用 DetachCurrentThread 的情况下退出(也许它会使用 pthread_key_create 析构函数?):线程 [28,tid=17206,Native,Thread*=0xa211c000,对等体=0x12ea60a0,“signaling_threa - 17206”] 18:37:03.641 15909-16198/com.coms D/RTCClient: 关闭会话完成。 18:37:03.641 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调: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 进程 onChannelConnectionClosed 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession﹕检查会话是否需要关闭 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession: Session isNeedToClose true 18:37:03.642 15909-16198/com.coms D/LooperExecutor:请求 Looper 执行。 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession:开始会话关闭。 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession: 关闭 mediaStreamManager。 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调计数:2 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调:com.quickblox.videochat.webrtc.QBRTCClient$SessionClosedListener@24140113 18:37:03.642 15909-16198/com.coms D/RTCClient:正在关闭对等连接工厂。 18:37:03.642 15909-16198/com.coms D/RTCClient﹕没有什么要关闭工厂为空 18:37:03.642 15909-16198/com.coms D/RTCClient.QBRTCSession:通知会话回调: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 出现问题,其中日志有一个“设置了错误的呼叫者 ID”,而 02.459 的 QBRTCSessionDescription 具有一个空呼叫者 ID。然后 MsgProcessor 给出了一个不好的“通知停止呼叫”。

后来我挂断了发送方,因为显然没有发生任何事情。

在我看来,QB 会话和聊天会话都很好,并且 RTC 信号似乎工作(如果我用拒绝呼叫替换 acceptCall,客户端会立即挂断)但呼叫从未完全通过。

QuickBlox 上的文档不是很好,但我的代码非常接近地模拟了他们的示例。如果日志中有线索,我无法理解。有人有什么想法吗??

Tnx

【问题讨论】:

我应该补充一点,运行 Javascript 客户端到 Javascript 客户端 Quickblox 视频聊天工作得很好 - 所以对演示 javascript 客户端的更改以将其连接到我帐户中的用户并没有引入任何问题..问题肯定出在 Android 端 【参考方案1】:

今天遇到了同样的问题;更新到最新的 SDK 后。

您还需要从 SDK 更新您的 jniLib,在我的例子中是 libjingle_peerconnection_so

【讨论】:

【参考方案2】:

Sample-webrtc-android Prepare your application for Android SDK

您可以在 Quickblox 文档中找到此标题:添加信号管理器

如果您将 so 文件添加到您的项目中,请检查您是否这样做。

    QBChatService.getInstance().getVideoChatWebRTCSignalingManager().addSignalingManagerListener(new QBVideoChatSignalingManagerListener() 

    @Override
    public void signalingCreated(QBSignaling qbSignaling, boolean createdlocally) 
    
         if (!createdlocally) 
         
         rtcClient.addSignaling((QBWebRTCSignaling) qbSignaling);
         
    
);

【讨论】:

您可以添加更多的 cmets 来解释为什么这可以解决问题。 quickblox.com/developers/… quickblox.com/developers/… 你可以在上面的链接中找到这个标题:添加信令管理器

以上是关于Quickblox Android web-rtc -- onRemoteVideoTrackReceive 未调用的主要内容,如果未能解决你的问题,请参考以下文章

Web-Rtc C++版本编译使用

无法解决:com.quickblox:quickblox-android-sdk-chat:2.6.1

究竟如何在 android 中使用 quickblox?

没有收到推送通知,quickblox,android

quickblox-android jar 找不到

Android 上的 Quickblox 视频通话