2014-10-04 6 views
1

Я пытаюсь получить видеочат для работы с SDK android 2.0 с помощью quickblox в течение последних двух дней. Я могу принять, сделать, отклонить видеозвонки, но видео не будет отправлять или получать на поверхности.Невозможно получить видеоработу для нового SDK для Android SDK quickBlox

Я вижу свое собственное видео камеры и отлично переключаю камеру.

Я несколько раз перешел к демонстрации, и я в значительной степени скопировал его по строкам.

Может ли кто-нибудь дать мне несколько советов о том, как заставить его работать? Я был бы очень благодарен.

Вот моя QBChatListener декларация

OnQBVideoChatListener qbVideoChatListener = new OnQBVideoChatListener() { 
    @Override 
    public void onCameraDataReceive(byte[] videoData) { 

     QBVideoChatController.getInstance().sendVideo(videoData); 
     Log.d("send", "video"); 

    } 

    @Override 
    public void onMicrophoneDataReceive(byte[] audioData) { 
     if (!muteOn) { 
      QBVideoChatController.getInstance().sendAudio(audioData); 
      Log.d("send", "audio"); 

     } 
    } 

    @Override 
    public void onOpponentVideoDataReceive(byte[] videoData) { 
     toUserSurfaceView.render(videoData); 
     Log.d("receive", "video"); 
    } 

    @Override 
    public void onOpponentAudioDataReceive(byte[] audioData) { 
     QBVideoChatController.getInstance().playAudio(audioData); 
     Log.d("receive", "audio"); 

    } 



    @Override 
    public void onProgress(boolean progress) { 
//   progressBar.setVisibility(progress ? View.VISIBLE : View.GONE); 
    } 

    @Override 
    public void onVideoChatStateChange(CallState callState, VideoChatConfig receivedVideoChatConfig) { 
     videoChatConfig = receivedVideoChatConfig; 

     switch (callState) { 

      case ON_CALL_START: 
       Log.d("ON_CALL_START", "ON_CALL_START"); 

       break; 
      case ON_CANCELED_CALL: 

       videoChatConfig = null; 
       Log.d("on_cancel", "on_cancel"); 


       //play sound 
       goBack(); 


       break; 
      case ON_CALL_END: 
       Log.d("oncallend", "oncallend"); 

       // clear opponent view 
       toUserSurfaceView.clear(); 
       goBack(); 

       break; 
      case ACCEPT: 

       callingTitle.setText("Attempting to connect with \n" + callTitle); 
       mySurfaceView.setVisibility(View.VISIBLE); 
       toUserSurfaceView.setVisibility(View.VISIBLE); 
       QBVideoChatController.getInstance().acceptCallByFriend(videoChatConfig, null); 
       Log.d("accept", "accept"); 


       break; 
      case ON_ACCEPT_BY_USER: 
       callingTitle.setText(callTitle + "\n accepted. Attempting to connect"); 
       mySurfaceView.setVisibility(View.VISIBLE); 
       toUserSurfaceView.setVisibility(View.VISIBLE); 

       QBVideoChatController.getInstance().onAcceptFriendCall(videoChatConfig, null); 
       Log.d("ON_ACCEPT_BY_USER", "ON_ACCEPT_BY_USER"); 

       break; 
      case ON_REJECTED_BY_USER: 


            break; 
      case ON_DID_NOT_ANSWERED: 


       break; 


      case ON_CONNECTED: 
       hideTitleAndIndicator(); 
       Log.d("onConnected", "onConnected"); 

       switchCameraButton.setEnabled(true); 

       break; 
      case ON_START_CONNECTING: 
       Log.d("onstartconnection", "onstartconnection"); 


       break; 

     } 

    } 

Вот ошибки я получаю в моем журнале:

10-03 21:08:36.910 D/QBDataSenders﹕ true false false 
10-03 21:08:36.910 D/QBDataSenders﹕ videoData didn`t send 
10-03 21:08:36.918 D/CameraView﹕ time=368 9600 1000 
10-03 21:08:36.918 D/CameraView﹕ processed my audio frame, time=368, size=0.9765625 kb false 
10-03 21:08:36.918 D/QBDataSenders﹕ audiData didn`t send 
10-03 21:08:36.918 D/send﹕ audio 
10-03 21:08:36.957 D/skia﹕ onFlyCompress 
10-03 21:08:37.012 GC_FOR_ALLOC freed 1218K, 13% free 13441K/15392K, paused 32ms, total 32ms 
10-03 21:08:37.051 D/QBDataSenders﹕ true false false 
10-03 21:08:37.051 D/QBDataSenders﹕ videoData didn`t send 

также

10-03 21:23:09.528 W/System.err﹕ java.lang.InterruptedException 
10-03 21:23:09.528  W/System.err﹕ at java.lang.VMThread.sleep(Native Method) 
10-03 21:23:09.528  W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1031) 
10-03 21:23:09.535  W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1013) 
10-03 21:23:09.535 W/System.err﹕ at com.quickblox.module.videochat.core.objects.AudioRecorder$AudioPlayingRunnable.run(AudioRecorder.java:126) 
10-03 21:23:09.535 W/System.err﹕ at java.lang.Thread.run(Thread.java:856) 
10-03 21:23:09.535 W/System.err﹕ java.lang.InterruptedException 
10-03 21:23:09.535 W/System.err﹕ java.lang.InterruptedException 
10-03 21:23:09.535 W/System.err﹕ at java.lang.VMThread.sleep(Native Method) 
10-03 21:23:09.535 W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1031) 
10-03 21:23:09.535 W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1013) 
10-03 21:23:09.535 W/System.err﹕ at com.quickblox.module.videochat.core.objects.AudioRecorder$AudioPlayingRunnable.run(AudioRecorder.java:126) 
10-03 21:23:09.535 W/System.err﹕ at java.lang.Thread.run(Thread.java:856) 

и

10-03 22:27:49.824 W/System.err﹕ java.lang.InterruptedException 
10-03 22:27:49.831 W/System.err﹕ at java.lang.VMThread.sleep(Native Method) 
10-03 22:27:49.831 W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1031) 
10-03 22:27:49.831 W/System.err﹕ at java.lang.Thread.sleep(Thread.java:1013) 
10-03 22:27:49.831 W/System.err﹕ at com.quickblox.module.videochat.core.objects.XMPPConnectionClient$CallingRunnable.run(XMPPConnectionClient.java:150) 
+0

Как я могу решить это, если я работаю в Eclipse, а не в Android Studio? Мне удалось сделать все, кроме этого. –

ответ

1

После долгих выдержек волос и некоторой помощи от styler1972 - вот что сработало для меня.

Я точно не исправляю свою проблему, но это то, что работает для меня, поэтому я включу все это.

  1. Убедитесь, что у вас есть кодек armeabi в папке с файлами libs, как и демонстрационный проект.

  2. В Gradle убедитесь, что у вас есть

    buildscript { репозиториев { mavenCentral() } зависимости { классов 'com.android.tools.build:gradle:0.12.2' } }

    затем

    андроид {

    compileSdkVersion 19 buildToolsVersion '20 .0.0'

    sourceSets { 
        main { 
         manifest.srcFile 'src/main/AndroidManifest.xml' //location of your manifest 
         java.srcDirs = ['src'] 
         res.srcDirs = ['src/main/res'] 
        } 
    } 
    
    defaultConfig { 
        applicationId "your bundle id" 
        minSdkVersion 16 
        targetSdkVersion 19 
        versionCode 1 
        versionName "1.0" 
    } 
    
    // don't use proguard 
    // buildTypes { 
    //  release { 
    //   runProguard true 
    //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    //  } 
    // } 
    // lintOptions { 
    //  abortOnError true 
    // } 
    
    task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') { 
        destinationDir file("$buildDir/native-libs") 
        baseName 'native-libs' 
        extension 'jar' 
        from fileTree(dir: 'libs', include: '**/*.so') 
        into 'lib/' 
    } 
    
    tasks.withType(JavaCompile) { 
        compileTask -> compileTask.dependsOn(nativeLibsToJar) 
    } 
    
    dependencies { 
        compile fileTree(dir: 'libs', include: '*.jar') 
        compile fileTree(dir: '../jar', include: '*.jar') 
        compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') 
    
    } 
    

После этого я был в состоянии сделать это, наконец, работать!

+0

Как я могу решить это, если я работаю в Eclipse, а не в Android Studio? Мне удалось сделать все, кроме этого. –

+0

выполните следующие действия: https: // stackoverflow.ком/вопросы/28314465/андроида-quickblox-видеообщения-кода принудительно закрыть при щелкать-на-приемо-кнопка-Clic/28314807 # 28314807 – NullPointer

1

Это решение для затмений структуры проекта Android: -

В образце SDK вы можете найти файл .so для кодека, который должен быть в project.Copy этот файл в ваш ЛИЭС/armeabi папку.

 Смежные вопросы

  • Нет связанных вопросов^_^