我正在尝试使用quickblox v2.5构建视频聊天应用。
我的聊天应用在iOS9.2和Android 4 +,5 +上运行良好。
但它在android 6上不起作用。:(
我使用了Nexus 5和三星galaxy s4,s5。
当我使用Nexus5进行测试时,它在iOS到android,android-android之间运行良好。
但我无法在Android到iOS之间进行视频通话。 (只能工作音频通话)。
当我使用三星galax时,它并不适用于所有情况(ios-android,android-android,android-ios)。
几天的谷歌搜索和调试,我发现这个问题发生在与对手创建会话时。
QBRTCSession newSessionWithOpponents = rtcClient.createNewSessionWithOpponents(
getOpponentsIds(opponents), qbConferenceType);
以下是logcat的一部分。
03-06 14:45:31.901 15892-16599 / com.quickblox.sample.groupchatwebrtc D / VideoRendererGui:VideoRendererGui.onSurfaceChanged:1056 x 1056
03-06 14:45:31.901 15892-16599 / com.quickblox.sample.groupchatwebrtc D / VideoRendererGui:ID:0。YuvImageRenderer.setScreenSize:1056 x 1056 03-06 14:45:31.903 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni:EnableBuiltInAEC @ [tid = 16591] 03-06 14:45:31.904 15892-16591 / com.quickblox.sample.groupchatwebrtc D / WebRtcAudioRecord: EnableBuiltInAEC(true)03-06 14:45:31.908 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.PeerFactoryManager:从中启动的对等连接工厂 thread1060 03-06 14:45:32.320 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:onLocalStreamNeedAdd for opponent 2436257 03-06 14:45:32.321 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBMediaStreamManager:Init本地媒体流03-06 14:45:32.321 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBMediaStreamManager:添加视频流03-06 14:45:32.323 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:对手的对等通道中的onError 2436257,未找到视频输入设备03-06 14:45:32.323 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.323 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:POST.Run on thread:1056 for QBRTCClient 03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel:呼叫hangUp给对手2436257 03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel:关闭03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PeerChannelLifeCycleTimers:停止 DialingTimer 03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PeerChannelLifeCycleTimers:停止WaitTimer 03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PeerChannelLifeCycleTimers:停止 DisconnectTimer 03-06 14:45:32.323 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.324 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:POST.Run on thread:1062 for QBPeerChannel 03-06 14:45:32.325 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel:关闭对等连接开始。 03-06 14:45:32.326 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.SDPObserver :: SDP已成功创建 03-06 14:45:32.326 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:generateLocalDescription:audioCodec = ISAC 03-06 14:45:32.328 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:找到ISAC rtpmap 103,首选m = audio 9 RTP / SAVPF 111 103 9 102 0 8 106 105 13 127 126 03-06 14:45:32.328 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:更改媒体描述:m =音频9 RTP / SAVPF 103 111 9 102 0 8 106 105 13 127 126 03-06 14:45:32.328 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:generateLocalDescription:videoCodec = VP8 03-06 14:45:32.330 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:发现VP8 rtpmap 100,更喜欢m = video 9 RTP / SAVPF 100 116 117 96 03-06 14:45:32.330 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.RTCMediaUtils:更改媒体描述:m =视频9 RTP / SAVPF 100 116 117 96 03-06 14:45:32.331 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PCObserver :: onIceConnectionChange为CLOSED 03-06 14:45:32.331 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PCObserver :: onIceGatheringChange to 完成03-06 14:45:32.331 15892-16592 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel.PCObserver :: onSignalingChange为CLOSED 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:onChannelConnectionClosed为对手 2436257 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:POST.Run on thread:1056 for QBRTCClient 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环停止。在QBPeerChannel上 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:Looper线程完成。 03-06 14:45:32.332 15892-16578 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBPeerChannel:onExecutorStop.PeerChannel成功 停止03-06 14:45:32.333 15892-16406 / com.quickblox.sample.groupchatwebrtc D / ConversationFragment:getViewForOpponent holder用户ID是:2436257 03-06 14:45:32.333 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:检查会话需要关闭03-06 14:45:32.333 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:Session isNeedToClose true 03-06 14:45:32.333 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:closeSession 03-06 14:45:32.333 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.334 15892-16406 / com.quickblox.sample.groupchatwebrtc D / SessionClosedListener:onSessionStartClose 03-06 14:45:32.334 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.334 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:POST.Run on thread:1060 for PeerFactoryManager 03-06 14:45:32.334 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession.SessionWaitingTimers:停止WaitTimer 03-06 14:45:32.334 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBRTCSession:通知sesions回调计数:2 03-06 14:45:32.335 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环执行。 03-06 14:45:32.335 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:POST.Run on thread:1060 for PeerFactoryManager 03-06 14:45:32.335 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient。: onSessionClosed 03-06 14:45:32.335 15892-16406 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:线程上的EXECUTE.Run:1056用于QBRTCClient 03-06 14:45:32.335 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBMediaStreamManager:视频源启动配置03-06 14:45:32.335 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.QBMediaStreamManager:视频源为空03-06 14:45:32.335 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.PeerFactoryManager:开始配置对等工厂03-06 14:45:32.336 15892-15892 / com.quickblox.sample.groupchatwebrtc D / CallActivity:会话31edba93-27cb-4e51-82a1-f8e0839e6aeb开始 停止会议03-06 14:45:32.336 15892-15892 / com.quickblox.sample.groupchatwebrtc D / CallActivity:停止 会议03-06 14:45:32.384 15892-15892 / com.quickblox.sample.groupchatwebrtc D / OpponentsFragment: onCreate()from OpponentsFragment 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: 终止@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: StopPlayout @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni: 终止@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni: StopRecording @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioManager: 关闭@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / WebRtcAudioManager: dispose @ [name = Thread-1067,id = 1067] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni: ~dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni: 终止@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioRecordJni: StopRecording @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: GlobalRef :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: NativeRegistration :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: JNIEnvironment :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: AttachCurrentThreadIfNeeded :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: 终止@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: StopPlayout @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: DestroyAudioPlayer 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: DestroyMix 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / OpenSLESPlayer: DestroyEngine 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioManager: ~dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioManager: 关闭@ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / AudioManager: JavaAudioManager :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: GlobalRef :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: NativeRegistration :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: JNIEnvironment :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM: AttachCurrentThreadIfNeeded :: dtor @ [tid = 16591] 03-06 14:45:32.693 15892-16591 / com.quickblox.sample.groupchatwebrtc D / JVM:分离 来自JVM的线程03-06 14:45:32.696 15892-16592 / com.quickblox.sample.groupchatwebrtc W / art:原生线程 没有调用DetachCurrentThread退出(也许它会去 使用pthread_key_create析构函数?): 螺纹[42,TID = 16592,母语,螺纹* = 0xaeb55500,同行= 0x94f730a0," signaling_threa - 16592"] 03-06 14:45:32.699 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.PeerFactoryManager:配置对等工厂完成03-06 14:45:32.699 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:请求循环停止。在PeerFactoryManager上 03-06 14:45:32.699 15892-16574 / com.quickblox.sample.groupchatwebrtc D / RTCClient.LooperExecutor:Looper线程完成。
在这一行上,应用程序崩溃了。因此,呼叫活动无法启动。
任何人,请帮助我。