WebRTC ScreenCapturerAndroid

WebRTC ScreenCapturerAndroid

我正在尝试为 android 创建屏幕捕获器应用程序。我已经使用来自 here 的 Camera2Enumerator 库使用视频捕获器设置了 webRTC 部分。我如何修改它以创建预录制的视频捕获器而不是相机捕获器。

谢谢!

只是想更新一下我已经解决了这个问题。我无法分享整个代码,但这里有一个过程可能会有所帮助:

  1. 获取预录文件的一帧并存储在字节数组中(必须是YUV格式)

  2. 将 VideoCapturer() 替换为以下内容:

    fun onGetFrame(p0: ByteArray?) {
    
        var timestampNS = java.util.concurrent.TimeUnit.MILLISECONDS.toNanos(SystemClock.elapsedRealtime())
    
        var buffer:NV21Buffer = NV21Buffer(p0,288,352,null)
    
        var videoFrame:VideoFrame = VideoFrame(buffer,0,timestampNS)
    
        localVideoSource.capturerObserver.onFrameCaptured(videoFrame)
    
        videoFrame.release()
    
    }
    

    其中 p0 是带有帧的字节数组

  3. 使用计时器在 startLocalVideoCapture() 中调用此函数(每隔几毫秒...我使用了 10 纳秒)https://developer.android.com/reference/android/os/CountDownTimer

  4. 在 startLocalVideoCapture() 中删除这一行--->

    VideoCapturer.initialize(
                surfaceTextureHelper,
                localVideoOutput.context,
                localVideoSource.capturerObserver)