Я снимаю экран с помощью 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;
}
Когда я меняю источник в качестве потока камеры, он отлично работает.
Пожалуйста, дайте мне решение для потокового захвата экрана.