2016-03-07 70 views
0

我试图使用quickblox v2.5构建视频聊天应用程序。无法使用quickblox在Android 6上进行视频通话

我的聊天应用在iOS9.2和Android 4+,5+上运行良好。

不过,这并不在Android 6. :(

我用的Nexus 5和三星Galaxy S4工作,S5。

当我使用Nexus5的测试,它的iOS之间的工作以及到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(真)03-06 14:45:31.908 15892-16574/COM。 quickblox.sample.groupchatwebrtc d/RTCClient.PeerFactoryManager:45::32.320 15892-16578/com.quickblox.sample.groupchatwebrtc d/RTCClient.QBRTCSession:对等体连接工厂从 thread1060 03-06 14发起onLocalStreamNeedAdd为对手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等信道,没有设备FO r视频输入被发现03-06 14:45:32.323 15892-16578/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:请求Looper执行。 03-06 14:45:32.323 15892-16578/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:POST.Run对线程:1056对于QBRTCClient 03-06 14:45:32.323 15892-16406/com .quickblox.sample.groupchatwebrtc D/RTCClient.QBPeerChannel:呼叫挂断对手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:请求Looper执行。 03-06 14:45:32.324 15892-16406/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:POST.Run对线程:1062对于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 = audio 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到 COMPLETE 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:请求Looper执行。 03-06 14:45:32.332 15892-16578/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:POST.Run对线程:1056对于QBRTCClient 03-06 14:45:32.332 15892-16578/com .quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:请求Looper停止。在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。 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:请求Looper执行。 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:请求Looper执行。 03-06 14:45:32.334 15892-16406/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:POST.Run对线程:1060对于 PeerFactoryManager 03-06 14:45:32.334 15892-16406/D/RTCClient.QBRTCSession.SessionWaitingTimers:Stop WaitTimer 03-06 14:45:32.334 15892-16406/com.quickblox.sample.groupchatwebrtc D/RTCClient.QBRTCSession:通知计数回调计数作者:2 03-06 14:45:32.335 15892-16406/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:请求Looper执行。 03-06 14:45:32.335 15892-16406/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:POST.Run在线程上:1060为 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 for 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:start dispose Peer factory 03-06 14:45:32.336 15892-15892/com.quickblox.sample.groupchatwebrtc D/CallActivity:Session 31edba93-27cb-4e51-82a1-f8e0839e6aeb start stop session 03-06 14:45:32.336 15892-15892/com.quickblox.sample.groupchatwebrtc D/CallActivity:Stop session 03-06 14:45 :32.384 15892-15892/com.quickblox.sample.groupchatwebrtc d/OpponentsFragment: 的onCreate()从OpponentsFragment 03-06 14:45:32.693 15892-16591/com.quickblox.sample.groupchatwebrtc d/OpenSLESPlayer: 终止@ [tid = 16591] 03-06 14:45:32.693 15892-1659 1/com.quickblox.sample.groupchatwebrtc D/OpenSLESPlayer: StopPlayout @ [tid = 16591] 03-06 14:45:32.693 15892-16591/com.quickblox.sample.groupchatwebrtc D/AudioRecordJni: Terminate @ [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: Close @ [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 ::析构函数@ [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: Terminate @ [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:脱离 J中的线程VM 03-06 14:45:32.696 15892-16592/com.quickblox.sample.groupchatwebrtc W/art:原生线程 退出时没有调用DetachCurrentThread(也许它会去 使用pthread_key_create析构函数?): Thread [42 ,tid = 16592,Native,Thread * = 0xaeb55500,peer = 0x94f730a0,“signaling_threa - 16592”] 03-06 14:45:32.699 15892-16574/com.quickblox.sample.groupchatwebrtc D/RTCClient.PeerFactoryManager:dispose对等工厂完成03-06 14:45:32.699 15892-16574/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:请求Looper停止。在PeerFactoryManager上 03-06 14:45:32.699 15892-16574/com.quickblox.sample.groupchatwebrtc D/RTCClient.LooperExecutor:Looper线程完成。

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

任何人,请帮助我。

回答

0

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

+0

嗨弗拉基米尔 感谢您的快速回复。 我在运行时请求权限。 另外我已经测试过手动授予权限。 但它没有奏效。 :( – gstream79

+0

@ YaborHabarov你有没有试过问存储权限?还有很多日志,但我没有找到类似错误日志的东西,你能发布最终的错误日志(粉碎日志)吗? –

+0

弗拉基米尔,谢谢你的再次答复。 我给下面的权限我的应用程序。 “相机”, “许可权”, “RECORD_AUDIO”, “互联网”, “WRITE_EXTERNAL_STORAGE”, “振动” 下, “READ_PHONE_STATE”, “ACCESS_WIFI_STATE”。 你可以在这里找到完整的logcat文件。 [link](https://www.dropbox.com/s/m8cbaxnqg21ywob/log1.txt?dl=0) 希望能尽快回复您的问题 谢谢 – gstream79