startScreenVideoCapture method
- ByteRTCScreenCaptureSourceInfo sourceInfo,
- ByteRTCScreenCaptureParam captureParameters
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,或应用窗口中显示的内容。
@param sourceInfo 待共享的屏幕源,参看 ByteRTCScreenCaptureSourceInfo{@link #ByteRTCScreenCaptureSourceInfo}。
你可以调用 getScreenCaptureSourceList{@link #ByteRTCEngine#getScreenCaptureSourceList} 获得所有可以共享的屏幕源。
@param captureParameters 共享参数。参看 ByteRTCScreenCaptureParam{@link #ByteRTCScreenCaptureParam}。
@return
- 0: 成功
- -1: 失败
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning} 回调。
- 调用此方法仅开启屏幕流视频采集,不会发布采集到的视频。发布屏幕流视频需要调用 publishScreenVideo:{@link #ByteRTCRoom#publishScreenVideo}。
- 调用 stopScreenVideoCapture{@link #ByteRTCEngine#stopScreenVideoCapture} 关闭屏幕视频源采集。
- 本地用户通过 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 的回调获取屏幕采集状态,包括开始、暂停、恢复、错误等。
- 调用成功后,本端会收到 rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo} 回调。
- 调用此接口前,你可以调用 setScreenVideoEncoderConfig:{@link #ByteRTCEngine#setScreenVideoEncoderConfig} 设置屏幕视频流的采集帧率和编码分辨率。
- 在收到 rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo} 回调后,通过调用 setLocalVideoCanvas:withCanvas:{@link #ByteRTCEngine#setLocalVideoCanvas:withCanvas} 或 setLocalVideoSink:withSink:withPixelFormat:{@link #ByteRTCEngine#setLocalVideoSink:withSink:withPixelFormat} 函数设置本地屏幕共享视图。
- 再开启采集屏幕视频流后,你可以调用 updateScreenCaptureHighlightConfig:{@link #ByteRTCEngine#updateScreenCaptureHighlightConfig} 更新边框高亮设置,调用 updateScreenCaptureMouseCursor:{@link #ByteRTCEngine#updateScreenCaptureMouseCursor} 更新对鼠标的处理设置,PC 端还可以调用 updateScreenCaptureFilterConfig:{@link #ByteRTCEngine#updateScreenCaptureFilterConfig} 设置需要过滤的窗口。
Implementation
FutureOr<int> startScreenVideoCapture(
ByteRTCScreenCaptureSourceInfo sourceInfo,
ByteRTCScreenCaptureParam captureParameters) async {
return await nativeCall('startScreenVideoCapture:captureParameters:',
[sourceInfo, captureParameters]);
}