Я разрабатываю видеовызов Android с помощью Sinch и следую руководствам и примерам Sinch. Большинство из них работают нормально, но я столкнулся с 2 проблемами, которые я понятия не имею, как их решить.
1) Я не могу возобновить рендеринг видео. Сценарий: Когда я установил вызов, все работает нормально, затем я выхожу из активности, не повесив трубку (поэтому видеозвонок все еще продолжается). Когда я снова запускаю действие, локальный вид (моя собственная камера) не продолжает отображаться. Это приводит к тому, что другой телефон видит меня, как если бы видеовызов завис / застрял.
@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
Кто-нибудь знает, как их решить? Заранее спасибо, извините за мой плохой английский