Android Sinch Video Call не может переключить камеру и возобновить работу видеоконтроллера

Я разрабатываю видеовызов 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

Кто-нибудь знает, как их решить? Заранее спасибо, извините за мой плохой английский


person Invalid Name    schedule 16.05.2016    source источник


Ответы (1)


Вы можете попробовать следующий код для переключения камеры (второй вопрос)

VideoController vcLocal = getSinchServiceInterface().getVideoController();

при нажатии какой-либо кнопки используйте следующий код

vcLocal.toggleCaptureDevicePosition();
person Sumit Kumar    schedule 05.09.2017