Twilio-如何获得已经在聊天室中的用户的VideoTracks



我正在使用Twilio Android库,当你加入它时,我很难在那个房间里获得派对成员的视频流。请有人帮我,我已经试了几个小时了。

return new Room.Listener() {
@Override
public void onConnected(Room room) {
Log.d(TAG, "Room Listener Connected to " + room.getName());
}

在连接到一个房间后,这个方法被调用,我不知道如何获取其他参与者的VideoTracks。

一旦您的房间成功连接,您就必须从房间中找到远程参与者,并为房间中的每个参与者附加RemoteParticipant.Listener

要让参与者离开房间:

override fun onConnected(room: Room) {
for (remoteParticipant in room.remoteParticipants) {
addRemoteParticipant(remoteParticipant)
}
}

设置具有远程参与者的侦听器

private fun addRemoteParticipant(remoteParticipant: RemoteParticipant) {
remoteParticipantIdentity = remoteParticipant.identity
remoteParticipant.setListener(remoteParticipantListener())
}

之后,您必须实现获取参与者的音频和视频轨迹的方法

private fun remoteParticipantListener(): RemoteParticipant.Listener {
return object : RemoteParticipant.Listener {
override fun onAudioTrackPublished(remoteParticipant:RemoteParticipant,remoteAudioTrackPublication: RemoteAudioTrackPublication) {
}
override fun onAudioTrackUnpublished(remoteParticipant: RemoteParticipant,remoteAudioTrackPublication: RemoteAudioTrackPublication) {
}
override fun onDataTrackPublished(remoteParticipant: RemoteParticipant,remoteDataTrackPublication: RemoteDataTrackPublication) {
}
override fun onDataTrackUnpublished(remoteParticipant: RemoteParticipant,
remoteDataTrackPublication: RemoteDataTrackPublication) {
}
override fun onVideoTrackPublished(remoteParticipant: RemoteParticipant,remoteVideoTrackPublication: RemoteVideoTrackPublication) {}
override fun onVideoTrackUnpublished(remoteParticipant: RemoteParticipant, remoteVideoTrackPublication: RemoteVideoTrackPublication) {}
override fun onAudioTrackSubscribed(remoteParticipant: RemoteParticipant,remoteAudioTrackPublication: RemoteAudioTrackPublication,remoteAudioTrack: RemoteAudioTrack) {}
override fun onAudioTrackUnsubscribed(remoteParticipant: RemoteParticipant,
remoteAudioTrackPublication: RemoteAudioTrackPublication, remoteAudioTrack: RemoteAudioTrack) {}
override fun onAudioTrackSubscriptionFailed(remoteParticipant: RemoteParticipant,
remoteAudioTrackPublication: RemoteAudioTrackPublication, twilioException: TwilioException) { }
override fun onDataTrackSubscribed(remoteParticipant: RemoteParticipant,remoteDataTrackPublication: RemoteDataTrackPublication,remoteDataTrack: RemoteDataTrack) {}
override fun onDataTrackUnsubscribed(remoteParticipant: RemoteParticipant,remoteDataTrackPublication: RemoteDataTrackPublication, remoteDataTrack: RemoteDataTrack) {}
override fun onDataTrackSubscriptionFailed(remoteParticipant: RemoteParticipant,remoteDataTrackPublication: RemoteDataTrackPublication,twilioException: TwilioException) {}
override fun onVideoTrackSubscribed(remoteParticipant: RemoteParticipant, remoteVideoTrackPublication: RemoteVideoTrackPublication, remoteVideoTrack: RemoteVideoTrack) {}
override fun onVideoTrackUnsubscribed(remoteParticipant: RemoteParticipant, remoteVideoTrackPublication: RemoteVideoTrackPublication,remoteVideoTrack: RemoteVideoTrack) {}
override fun onVideoTrackSubscriptionFailed(remoteParticipant: RemoteParticipant,
remoteVideoTrackPublication: RemoteVideoTrackPublication, twilioException: TwilioException){}
override fun onAudioTrackEnabled(remoteParticipant: RemoteParticipant,
remoteAudioTrackPublication: RemoteAudioTrackPublication) {}
override fun onAudioTrackDisabled(remoteParticipant: RemoteParticipant,
remoteAudioTrackPublication: RemoteAudioTrackPublication) {}
override fun onVideoTrackEnabled(remoteParticipant: RemoteParticipant,
remoteVideoTrackPublication: RemoteVideoTrackPublication) {}
override fun onVideoTrackDisabled(remoteParticipant: RemoteParticipant,remoteVideoTrackPublication: RemoteVideoTrackPublication) {}
}
}

最新更新