Java Quickblox可提高视频质量

Java Quickblox可提高视频质量,java,android,video,quickblox,Java,Android,Video,Quickblox,当视频发送到其他设备时,我使用QuickBlox获得的视频质量非常差。例如,我在自己的设备上看到自己的质量非常高,但一旦我看到另一台设备,接收的质量就非常差 我尝试使用以下方法提高FPS: cameraView.setFPS(30); 我可以做些什么来提高接收到的视频质量 我在Google Hangouts上测试了这两款平板电脑,质量比我的应用程序好 这是可以在上找到的代码 我甚至连视频都接收不到。您是从安卓系统呼叫安卓系统还是从安卓系统呼叫ios系统 你做了什么特别的事情让录像带工作吗?如

当视频发送到其他设备时,我使用QuickBlox获得的视频质量非常差。例如,我在自己的设备上看到自己的质量非常高,但一旦我看到另一台设备,接收的质量就非常差

我尝试使用以下方法提高FPS:

 cameraView.setFPS(30);
我可以做些什么来提高接收到的视频质量

我在Google Hangouts上测试了这两款平板电脑,质量比我的应用程序好

这是可以在上找到的代码


我甚至连视频都接收不到。您是从安卓系统呼叫安卓系统还是从安卓系统呼叫ios系统

你做了什么特别的事情让录像带工作吗?如果是这样,你能告诉我你做了什么吗

public class ActivityVideoChat extends Activity 
{
    private CameraView cameraView;
    private OpponentGlSurfaceView opponentView;
    private ProgressBar opponentImageLoadingPb;
    private VideoChatConfig videoChatConfig;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_chat_layout);
        initViews();
    }

    private void initViews() 
    {
        Debugger.logConnection("initViews");

        opponentView = (OpponentGlSurfaceView) findViewById(R.id.opponentView);

        cameraView = (CameraView) findViewById(R.id.cameraView);
        cameraView.setCameraFrameProcess(true);
        cameraView.setQBVideoChatListener(qbVideoChatListener);

        cameraView.setFPS(30);
        cameraView.setOnCameraViewListener(new OnCameraViewListener() {
            @Override
            public void onCameraSupportedPreviewSizes(List<Camera.Size> supportedPreviewSizes) {
                Camera.Size firstFrameSize = supportedPreviewSizes.get(0);
                Camera.Size lastFrameSize = supportedPreviewSizes.get(supportedPreviewSizes.size() - 1);
                cameraView.setFrameSize(firstFrameSize.width > lastFrameSize.width ? lastFrameSize : firstFrameSize);
            }
        });

        opponentImageLoadingPb = (ProgressBar) findViewById(R.id.opponentImageLoading);

        videoChatConfig = getIntent().getParcelableExtra(VideoChatConfig.class.getCanonicalName());

        QBVideoChatController.getInstance().setQBVideoChatListener(DataHolder.getInstance().getCurrentQbUser(), qbVideoChatListener);
    }

    @Override
    protected void onResume() 
    {
        super.onResume();
        cameraView.reuseCameraView();
    }

    @Override
    protected void onPause() 
    {
        cameraView.closeCamera();
        super.onPause();
    }

    @Override
    public void onDestroy() 
    {
        QBVideoChatController.getInstance().finishVideoChat(videoChatConfig);
        super.onDestroy();
    }

    OnQBVideoChatListener qbVideoChatListener = new OnQBVideoChatListener() 
    {
        @Override
        public void onCameraDataReceive(byte[] videoData) 
        {
            if (videoChatConfig.getCallType() != CallType.VIDEO_AUDIO) 
            {
                return;
            }
            QBVideoChatController.getInstance().sendVideo(videoData);
        }

        @Override
        public void onMicrophoneDataReceive(byte[] audioData) 
        {
            QBVideoChatController.getInstance().sendAudio(audioData);
        }

        @Override
        public void onOpponentVideoDataReceive(byte[] videoData) 
        {
            opponentView.loadOpponentImage(videoData);
        }

        @Override
        public void onOpponentAudioDataReceive(byte[] audioData)
        {
            QBVideoChatController.getInstance().playAudio(audioData);
        }

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

        @Override
        public void onVideoChatStateChange(CallState callState, VideoChatConfig chat) 
        {
            switch (callState) 
            {
                case ON_CALL_START:
                    break;
                case ON_CANCELED_CALL:

                    finish();
                    break;
                case ON_CALL_END:
                    finish();
                    break;
            }
        }
    };
}