java - Quickblox 提高视频质量

标签 java android video quickblox

当视频发送到其他设备时,我使用 QuickBlox 得到的视频质量非常差。例如,我在自己的设备上看到自己的质量非常高,但是当我查看其他设备时,收到的质量非常差。

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

 cameraView.setFPS(30);

如何提高接收视频的质量?

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

<小时/>

这是可以在 Sample by QuickBlox 上找到的代码.

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

最佳答案

我实际上什至无法接收视频。您是从 android 调用 android 还是 android 调用 ios?

为了让视频正常工作,您做了什么特别的事情吗?如果是这样,你能告诉我你做了什么吗?

关于java - Quickblox 提高视频质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25754095/

相关文章:

video - 视频流媒体网站,无法下载或窃取

java - Spring AOP 日志记录和缓存

java - 在 Jackson Mixins 中同时使用 @JsonIgnore 和 @JsonProperty 时出现问题

java - 将 PNG 加载到 OpenGL 性能问题 - Java 和 JOGL 比 C# 和 Tao.OpenGL 慢得多

android - 从 Android Camera 获取灰度位图的最快方法(预览版)

android - 当我在 android 中触摸图像时如何播放小音乐文件?

sharepoint - Sharepoint 2007 中的 <video> 标签

java - Eclipse动态Web项目: where should I put resource files

android - 在 Kotlin 中初始化 SharedPreference 的正确方法

Python OpenCV 2.4 写入半完整的PNG视频帧