簡體   English   中英

為什么只能在Android SDK QuickBlox 3.3.1上進行第一個視頻通話?

[英]Why only works the first video call on Android SDK QuickBlox 3.3.1?

我正在開發一個包含視頻聊天服務(使用QuickBlox的SDK )的Android應用。 在第一個接聽的電話上一切正常,但是在掛斷視頻通話后,設備無法再接聽更多電話。

唯一可疑的消息錯誤是:

E /類com.xxxx.xxxx.services.CallService:Ping聊天服務器失敗

而且webrtc.Logging檢測第二個或更多來電,但不會顯示來電片段。

我正在使用QuickBlox SDK版本3.3.1

如果您使用的是WebRtcSessionManager,則需要在通話斷開時重置會話。

 public class SessionManager extends QBRTCClientSessionCallbacksImpl {
    private static SessionManager instance;
    private Context context;

    private static QBRTCSession currentSession;
    private SessionManager(Context context) {
        this.context = context;
    }

    public static SessionManager getInstance(Context context){
        if (instance == null){
            instance = new SessionManager(context);
        }
        return instance;
    }

    public QBRTCSession getCurrentSession() {
        return currentSession;
    }

    public void setCurrentSession(QBRTCSession qbCurrentSession) {
        currentSession = qbCurrentSession;
    }

    @Override
    public void onReceiveNewSession(QBRTCSession session) {
        Log.d(TAG, "onReceiveNewSession to SessionManager");
    }

    @Override
    public void onSessionClosed(QBRTCSession session) {
        Log.d(TAG, "onSessionClosed SessionManager");
        if (session.equals(getCurrentSession())){
            setCurrentSession(null);
        }
    }
}

如果收到ping錯誤,即服務器沒有響應。請嘗試手動Ping並驗證錯誤代碼。

 QBPingManager pingManager = QBChatService.getInstance().getPingManager();
    pingManager.pingServer(new QBEntityCallback<Void>() {
        @Override
        public void onSuccess() {

        }
        @Override
        public void onError(QBResponseException error) {
        // Validate the error code here
        }
    });

如果您仍然遇到問題。 我認為您在配置中缺少某些內容。 如下配置。

QBChatService.ConfigurationBuilder chatServiceConfigurationBuilder=buildChatConfigs();
    QBChatService.setConfigurationBuilder(chatServiceConfigurationBuilder);

構建配置方法是。

 public static QBChatService.ConfigurationBuilder buildChatConfigs() {
    QBChatService.ConfigurationBuilder configurationBuilder = new QBChatService.ConfigurationBuilder();
        configurationBuilder.setSocketTimeout(60);
        configurationBuilder.setUseTls(true);
        configurationBuilder.setKeepAlive(true);
        configurationBuilder.setAutojoinEnabled(true);
        configurationBuilder.setAutoMarkDelivered(false);
        configurationBuilder.setReconnectionAllowed(true);
        configurationBuilder.setAllowListenNetwork(true);
    return configurationBuilder;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM