Android Sinch Video Call не может переключить камеру и возобновить работу видеоконтроллера
Я разрабатываю Android Video call, используя Sinch, и я следую инструкциям и примерам Sinch. Большинство из них работают нормально, но я столкнулся с двумя проблемами, которые я понятия не имею, как их решить.
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
У кого-нибудь есть идеи, как их решить? Заранее спасибо, извините за мой плохой английский
1 ответ
Вы можете попробовать следующий код для переключения камеры (второй вопрос)
VideoController vcLocal = getSinchServiceInterface().getVideoController();
при нажатии на кнопку используйте следующий код
vcLocal.toggleCaptureDevicePosition();