使用MediaProjection的屏幕捕获和使用带kurento框架的webrtc的流丢失

时间:2019-05-14 08:53:07

标签: android webrtc screen-capture kurento android-mediaprojection

我正在使用Media Projection API捕获屏幕,并使用webrtc将流发送到kurento服务器。流式传输时缺少帧,因此视频无法正常播放。

我的代码如下。

开始捕获屏幕

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;
    }

当我将来源更改为相机流时,它可以完美工作。

请给我屏幕捕获流的解决方案。

0 个答案:

没有答案