in app/src/main/java/com/amazonaws/services/chime/sdkdemo/fragment/MeetingFragment.kt [1466:1506]
override fun onServiceConnected(className: ComponentName, service: IBinder) {
val screenCaptureSource = DefaultScreenCaptureSource(
fragmentContext,
logger,
DefaultSurfaceTextureCaptureSourceFactory(
logger,
eglCoreFactory
),
resultCode,
data
)
meetingModel.isScreenShareServiceBound = true
val screenCaptureSourceObserver = object : CaptureSourceObserver {
override fun onCaptureStarted() {
screenShareManager?.let { source ->
audioVideo.startContentShare(source)
}
}
override fun onCaptureStopped() {
notifyHandler("Screen capture stopped")
}
override fun onCaptureFailed(error: CaptureSourceError) {
notifyHandler("Screen capture failed with error $error")
audioVideo.stopContentShare()
}
}
// Pass a new parameter to DefaultScreenCaptureSource (contentMaxResolution)
val activity = fragmentContext as MeetingActivity
val meetingSessionConfiguration = activity.getMeetingSessionConfiguration()
screenCaptureSource.setMaxResolution(meetingSessionConfiguration.features.contentMaxResolution)
screenShareManager = ScreenShareManager(screenCaptureSource, fragmentContext)
screenShareManager?.screenCaptureConnectionService = meetingModel.screenShareServiceConnection
screenShareManager?.addObserver(screenCaptureSourceObserver)
screenShareManager?.start()
activity.setScreenShareManager(screenShareManager)
}