簡體   English   中英

Android QuickBlox通話

[英]Android QuickBlox call

我正在嘗試將QuickBlox集成到音頻和視頻通話中。 我遵循了教程,但是沒有用。 為了能夠接收傳入的WebRTC呼叫,需要添加信令管理器,但是方法

    public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally)

不打。 怎么了? jniLib和權限已添加構建:已添加依賴項

    compile 'com.quickblox:quickblox-android-sdk-videochat-webrtc:3.3.0'

這里的代碼:

private EditText mUsername;
private EditText mPassword;
private Button mSignUp;
private Button mSignIn;
private Button mCall;
private QBUser mUser;


QBRTCClient client;
QBSessionManager sessionManager;
QBChatService chatService;
QBRTCSession qbrtcSession;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    QBSettings.getInstance().init(getApplicationContext(), APP_ID, AUTH_KEY, AUTH_SECRET);
    QBSettings.getInstance().setAccountKey(ACCOUNT_KEY);

    mUsername = (EditText) findViewById(R.id.username);
    mPassword = (EditText) findViewById(R.id.password);
    mSignIn = (Button) findViewById(R.id.sign_in);
    mSignUp = (Button) findViewById(R.id.sign_up);
    mCall = (Button) findViewById(R.id.button_call);
    client = QBRTCClient.getInstance(MainActivity.this);

    QBChatService.setDebugEnabled(true);
    QBChatService.setDefaultAutoSendPresenceInterval(60);
    chatService = QBChatService.getInstance();

    mSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mUser = new QBUser(mUsername.getText().toString(), mPassword.getText().toString());
           // QBUsers.signIn(mUser).performAsync(new QBEntityCallback<QBUser>() {
            QBAuth.createSession(mUser).performAsync(new QBEntityCallback<QBSession>() {
                @Override
                public void onSuccess(QBSession qbUser, Bundle bundle) {
                    Log.d(TAG, "My user: " + mUser);
                    Log.d(TAG, "received user: " + qbUser);
                    Log.d(TAG, "user logged in");
                    mUser.setId(qbUser.getUserId());

                    chatService.login(mUser, new QBEntityCallback<QBUser>() {
                        @Override
                        public void onSuccess(QBUser qbUser, Bundle bundle) {
                            Log.d(TAG, "user logged in to the chat");
                            client.prepareToProcessCalls();
                            chatService.getVideoChatWebRTCSignalingManager().addSignalingManagerListener(new QBVideoChatSignalingManagerListener() {
                                @Override
                                public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally) {
                                    Log.d(TAG, "created locally: " + createdLocally);
                                    if (!createdLocally) {
                                        client.addSignaling((QBWebRTCSignaling) qbSignaling);
                                    }
                                }
                            });

該行永遠不會調用:

    Log.d(TAG, "created locally: " + createdLocally);

當您撥打電話或接到電話時,將調用signalingCreated()方法。 您可以看一下視頻示例 ,一切正常。 順便說一句,您不需要手動管理會話,也不需要調用createSession方法。 只需使用QBUsers.signIn()。 文件資料

暫無
暫無

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

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