通过阅读本文,您可以了解到屏幕分享的使用方法。
注意
Android 10.0 及以上版本,使用屏幕共享功能需要开启前台服务,并在AndroidManifest.xml
中注册 Service,添加 foregroundServiceType 属性。
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application>
<service
android:name="xxx.SimpleScreenShareService"
android:enabled="true"
android:foregroundServiceType="mediaProjection">
</service>
</application>
推流端
启动屏幕分享。
// 配置屏幕分享推流
//获取DingRtcEngine实例
DingRtcEngine mRtcEngine = DingRtcEngine.create(getApplicationContext(),"");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForegroundService(sharingService);
}
ret = mRtcEngine.startScreenShare();
.....
推流后通过回调判断屏幕共享是否发布成功。
public void onScreenSharePublishStateChanged(DingRtcEngine.DingRtcPublishState oldState , DingRtcEngine.DingRtcPublishState newState, int elapseSinceLastState, String channel);
参数
类型
描述
oldState
DingRtcPublishState
之前的推流状态。
newState
DingRtcPublishState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔。单位:毫秒。
channel
String
当前频道ID。
停止屏幕分享。
// 配置屏幕分享停止 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { stopService(sharingService); } int ret = mRtcEngine.stopScreenShare();;
停止屏幕共享后通过回调判断屏幕共享是否取消发布成功。
public void onScreenSharePublishStateChanged(DingRtcEngine.DingRtcPublishState oldState , DingRtcEngine.DingRtcPublishState newState, int elapseSinceLastState, String channel);
参数
类型
描述
oldState
AliRtcPublishState
之前的推流状态。
newState
AliRtcPublishState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔。单位:毫秒。
channel
String
当前频道ID。
订阅端
订阅端用户可通过自动或手动方式订阅推流端屏幕分享视频流,并设置对应View显示,详情请参见DingRtcEngine接口。
文档内容是否对您有帮助?