aws / amazon-chime-sdk-android

An Android client library for integrating multi-party communications powered by the Amazon Chime service.
https://aws.amazon.com/chime/chime-sdk/
Apache License 2.0
103 stars 53 forks source link

Bind video tiles to multiple render views #615

Open giang777 opened 2 months ago

giang777 commented 2 months ago

class VideoFrameBroadcaster :VideoSource,VideoSink {

private val sinks = mutableSetOf<VideoSink>()

override val contentHint: VideoContentHint

    get() = TODO("Not yet implemented")

fun getVideoSinks(): MutableSet<VideoSink> {
    return sinks;
}

override fun addVideoSink(sink: VideoSink) {
    TODO("Not yet implemented")
    sinks.add(sink)
}

override fun removeVideoSink(sink: VideoSink) {
    TODO("Not yet implemented")
    sinks.remove(sink)
}

override fun onVideoFrameReceived(frame: VideoFrame) {
    TODO("Not yet implemented")
    sinks.forEach { it.onVideoFrameReceived(frame) }
}

}

@ReactProp(name = "tileId",)

fun setTileId(renderView: DefaultVideoRenderView, tileId: Int) {

    logger.info(TAG, "Setting tileId: $tileId");

    val video:VideoFrameBroadcaster = VideoFrameBroadcaster();

    video.addVideoSink(renderView);

    video.getVideoSinks().forEach { videoSink: VideoSink ->

        NativeMobileSDKBridge.meetingSession?.let {

            it.audioVideo.bindVideoView(videoSink as DefaultVideoRenderView, tileId)

        }

    }

}

I did as instructed and called them from react native but not getting tileId from DefaultVideoRenderView, can you help me?

linsang21 commented 2 months ago

Hi @giang777, are you using RN to implement video functionality? Have you checked out our RN demo? https://github.com/aws-samples/amazon-chime-react-native-demo/tree/master/android