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();
Другие вопросы по тегам