Android Sinch Video Call无法切换摄像头并恢复视频控制器

时间:2016-05-16 02:37:46

标签: android video sinch android-sinch-api

我正在使用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

任何人都知道如何解决这些问题?在此先感谢,抱歉我的英语不好

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码切换相机(第二个问题)

VideoController vcLocal = getSinchServiceInterface().getVideoController();

在某些按钮上单击使用以下代码

vcLocal.toggleCaptureDevicePosition();