2017-02-17 5 views
0

Ich versuche, QuickBlox für Audio- und Videoanrufe zu integrieren. Ich folgte Tutorial, aber es funktioniert nicht. Um eine Fähigkeit Empfangen eingehender Anrufe WebRTC zu ermöglichen müssen Signalisierungsmanager hinzufügen, aber MethodeAndroid QuickBlox Anruf

public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally) 

nicht nennen. Was ist falsch? jniLibs und Berechtigungen hinzugefügt build: hinzugefügt Abhängigkeit

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

Hier Code:

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); 
            } 
           } 
          }); 

Diese Zeile rufen nie:

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

Antwort

1

das Verfahren signalingCreated() aufgerufen wird, wenn Sie eine machen Anruf oder wenn Sie einen Anruf erhalten. Sie können sehen video sample es funktioniert alles in Ordnung. Übrigens müssen Sie die Sitzung nicht manuell verwalten, und Sie müssen createSession-Methoden nicht aufrufen. Verwenden Sie einfach QBUsers.signIn(). Documentation.

+0

Ich habe schon eine Lösung gefunden aber danke trotzdem. Über QBUser sollte man sich nicht einmal anmelden, genug neuen QBUser mit ID und Passwort anlegen –