2014-10-04 82 views
1

的新的Android SDK的工作,我一直试图让视频聊天,为quickblox的Android 2.0的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工作?除了这个,我已经设法使所有的工作都成功。 – 2014-11-06 13:59:27

回答

1

经过多次的拉动和styler1972的一些帮助 - 这对我来说很有用。

我并不确切哪一个固定我的问题,但是这是为我工作,所以我会包括它的全部。

  1. 请确保您的libs文件夹中的armeabi编解码器与演示项目一样。

  2. 在gradle这个请确保您有

    buildscript { 库{ mavenCentral() } 依赖{ 类路径 'com.android.tools.build:gradle:0.12.2' }}

    然后

    的Android {

    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工作?除了这个,我已经设法使所有的工作都成功。 – 2014-11-06 11:07:36

+0

遵循此:https:// stackoverflow。COM /问题/ 28314465/Android的quickblox - 视频电话代码,强制关闭,上点击上接收键式CLIC/28314807#28314807 – NullPointer 2015-03-04 17:32:40

1

该解决方案是Eclipse的Android项目结构: -

在SDK样品你会发现编解码器应该在project.Copy这个文件到您的库/ armeabi文件夹中的.so文件。

相关问题