我正在使用Sinch开发Android视频通话,并且我已按照Sinch教程和示例进行操作。他们中的大多数工作正常,但我遇到了两个问题,我不知道如何解决它。
1)我无法恢复视频渲染。 场景:当我建立一个呼叫时,一切正常,然后我退出活动而不挂断(因此视频呼叫仍在进行中)。当我再次启动活动时,localview(我自己的相机)不会继续渲染。这会导致另一部手机看到我,就像视频通话挂起/卡住一样。
@Override
public void onServiceConnected(ComponentName name, IBinder svc)
{
service = ((ServiceChat.ChatBinder) svc).getService();
VideoController controller = service.GetSinchVideoController();
if(controller != null)
{
// your own face
localVideo.addView(controller.getLocalView());
// contact face
remoteVideo.addView(controller.getRemoteView());
}
}
@Override
protected void onDestroy()
{
VideoController controller = service.GetSinchVideoController();
if(controller != null)
{
localVideo.removeView(controller.getLocalView());
remoteVideo.removeView(controller.getRemoteView());
}
super.onDestroy();
}
2)我遇到的另一个问题是我无法切换相机
private void SwitchCamera()
{
VideoController controller = service.GetSinchVideoController();
if(controller.getCaptureDevicePosition() == Camera.CameraInfo.CAMERA_FACING_FRONT)
{
controller.setCaptureDevicePosition(Camera.CameraInfo.CAMERA_FACING_BACK);
}
else
{
controller.setCaptureDevicePosition(Camera.CameraInfo.CAMERA_FACING_FRONT);
}
//controller.toggleCaptureDevicePosition();
}
但是我收到了这个错误
org.webrtc.Logging: VideoCapturerAndroid: Ignoring camera switch request.
org.webrtc.Logging: VideoCapturerAndroid: Could not switch to camera with id 0
任何人都知道如何解决这些问题?在此先感谢,抱歉我的英语不好
答案 0 :(得分:0)
您可以尝试使用以下代码切换相机(第二个问题)
VideoController vcLocal = getSinchServiceInterface().getVideoController();
在某些按钮上单击使用以下代码
vcLocal.toggleCaptureDevicePosition();