Снимок экрана с использованием MediaProjection и потоковой передачи с использованием webrtc с кадрами kurento отсутствуют - PullRequest
0 голосов
/ 14 мая 2019

Я снимаю экран с помощью Media projection API и отправляю поток на сервер kurento с помощью webrtc. Кадры отсутствуют во время потоковой передачи, поэтому видео не воспроизводится должным образом.

Мой код, как показано ниже.

Начать захват экрана

MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getApplication()  
    .getSystemService(Context.MEDIA_PROJECTION_SERVICE);  
startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(),  
CAPTURE_PERMISSION_REQUEST_CODE);

Результат обработки результата деятельности

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode != CAPTURE_PERMISSION_REQUEST_CODE)
      return;
    mediaProjectionPermissionResultCode = resultCode;
    mediaProjectionPermissionResultData = data;
    startCall();//start webrtc call is for stream
}

Код захвата видео для потока

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private VideoCapturer createScreenCapturer() {
        if (mediaProjectionPermissionResultCode != Activity.RESULT_OK) {
            return null;
        }
        VideoCapturer videoCapturer = new ScreenCapturerAndroid  
            (mediaProjectionPermissionResultData, new MediaProjection.Callback() {
            @Override
            public void onStop() {
                Log.d(TAG, "User revoked permission to capture the screen.");
            }
        });

        if (videoCapturer != null) {
            return videoCapturer;
        }
        return null;
    }

Когда я меняю источник в качестве потока камеры, он отлично работает.

Пожалуйста, дайте мне решение для потокового захвата экрана.

...