时间:2016-03-07 12:18:18

标签: android quickblox quickblox-android

我正在尝试使用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线程完成。

在这一行上,应用程序崩溃了。因此,呼叫活动无法启动。

任何人,请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该在RunTime请求权限 CAMERA 您的情况允许。 请阅读更多here