【问题标题】:Is there a way to sharescreen using WebRTC on Android有没有办法在 Android 上使用 WebRTC 共享屏幕
【发布时间】:2015-06-30 18:45:09
【问题描述】:

我已经为 Android 构建了 webRTC,我想用它来共享屏幕。 有没有办法发送开箱即用或推送我自己的帧流作为视频源。

【问题讨论】:

    标签: java android c++ video-streaming webrtc


    【解决方案1】:

    我在下面添加了一个示例,展示了如何将屏幕共享配置为视频源并将其添加为流中的轨道。

    获取 VideoCapturer

    @TargetApi(21)
    private VideoCapturer createScreenCapturer() {
        if (mMediaProjectionPermissionResultCode != Activity.RESULT_OK) {
            report("User didn't give permission to capture the screen.");
            return null;
        }
        return new ScreenCapturerAndroid(
                mMediaProjectionPermissionResultData, new MediaProjection.Callback() {
            @Override
            public void onStop() {
                report("User revoked permission to capture the screen.");
            }
        });
    }
    

    初始化捕获器并将曲目添加到本地媒体流

    private void initScreenCapturStream() {
        mLocalMediaStream = factory.createLocalMediaStream("ARDAMS");
        MediaConstraints videoConstraints = new MediaConstraints();
        videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxHeight", Integer.toString(mPeerConnParams.videoHeight)));
        videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxWidth", Integer.toString(mPeerConnParams.videoWidth)));
        videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxFrameRate", Integer.toString(mPeerConnParams.videoFps)));
        videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("minFrameRate", Integer.toString(mPeerConnParams.videoFps)));
    
        mVideoSource = factory.createVideoSource(videoCapturer);
        videoCapturer.startCapture(mPeerConnParams.videoWidth, mPeerConnParams.videoHeight, mPeerConnParams.videoFps);
        VideoTrack localVideoTrack = factory.createVideoTrack(VIDEO_TRACK_ID, mVideoSource);
        localVideoTrack.setEnabled(true);
        mLocalMediaStream.addTrack(factory.createVideoTrack("ARDAMSv0", mVideoSource));
        AudioSource audioSource = factory.createAudioSource(new MediaConstraints());
        mLocalMediaStream.addTrack(factory.createAudioTrack("ARDAMSa0", audioSource));
    
        mListener.onStatusChanged("STREAMING");
    }
    

    要了解更多信息,这可能是一个不错的起点。它是一个连接到 ProjectRTC 信令服务器并将屏幕作为视频共享的 Android 项目。我发现它很有帮助!

    https://github.com/Jeffiano/ScreenShareRTC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多