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