123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using fis.media.Library.Media.Members;
- using fis.media.Library.Media.Publisher;
- using fis.media.Library.Media.Rooms;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace fis.media.Library.Input.FisVideoMemberInput
- {
- public class InputConverterHelper
- {
- public static string[] GetChatRoomInitArgs(LiveConsultation liveConsultation)
- {
- var chatRoomInitArgs = new List<string>();
- chatRoomInitArgs.Add(liveConsultation.AppId.ToString());
- chatRoomInitArgs.Add(liveConsultation.UserCode!.ToString());
- chatRoomInitArgs.Add(liveConsultation.UserSign!.ToString());
- chatRoomInitArgs.Add(liveConsultation.RoomNo.ToString());
- return chatRoomInitArgs.ToArray();
- }
- public static List<AbstractMember> ConvetSDKMembers(List<ConsultationMemeber> consultationMemebers)
- {
- var members = new List<AbstractMember>();
- foreach (var cm in consultationMemebers)
- {
- members.Add(ConvertBuisnessMember(cm));
- }
- return members;
- }
- public static AbstractMember ConvertBuisnessMember(ConsultationMemeber ConsultationMemeber)
- {
- if (ConsultationMemeber.MemberRoleType==MemberRoleType.Local)
- {
- var localMember= new LocalVideoMember(ConsultationMemeber.Id);
- localMember.IsOnline = ConsultationMemeber.IsOnline;
- localMember.IsMute = ConsultationMemeber.Mute;
- localMember.IsCameraOn = ConsultationMemeber.VideoOpend;
- localMember.IsSelf = true;
- localMember.IsMergeChannel = ConsultationMemeber.MergedChannel;
- return localMember;
- }
- if (ConsultationMemeber.MemberRoleType == MemberRoleType.Remote)
- {
- var remoteMember = new RemoteVideoMember(ConsultationMemeber.Id);
- remoteMember.IsOnline = ConsultationMemeber.IsOnline;
- remoteMember.IsMute = ConsultationMemeber.Mute;
- remoteMember.IsCameraOn = ConsultationMemeber.VideoOpend;
- remoteMember.IsSelf = false;
- remoteMember.IsMergeChannel = ConsultationMemeber.MergedChannel;
- return remoteMember;
- }
- if (ConsultationMemeber.MemberRoleType == MemberRoleType.Device)
- {
- var deviceMember = new RemoteVideoMember(ConsultationMemeber.Id);
- deviceMember.IsOnline = ConsultationMemeber.IsOnline;
- deviceMember.IsMute = ConsultationMemeber.Mute;
- deviceMember.IsCameraOn = ConsultationMemeber.VideoOpend;
- deviceMember.IsSelf = false;
- deviceMember.IsMergeChannel = ConsultationMemeber.MergedChannel;
- deviceMember.LayerConfig = GenerateLayerConfig(ConsultationMemeber.MergedChannel, ConsultationMemeber.VideoDeviceInfos, ConsultationMemeber.MergedVideoOutputWidth,
- ConsultationMemeber.MergedVideoOutputHeight);
- return deviceMember;
- }
- return null;
- }
- private static LayerConfig GenerateLayerConfig(bool mergedChannel, List<VideoDeviceOutputInfo> videoDeviceInfos, int mergedVideoOutputWidth, int mergedVideoOutputHeight)
- {
- if (mergedChannel)
- {
- return null;
- }
- var layer = new LayerConfig();
- var deskTop = videoDeviceInfos.FirstOrDefault(x => x.VideoDeviceSourceType == VideoDeviceSourceTypeEnum.DeskTop);
- var camera= videoDeviceInfos.FirstOrDefault(x => x.VideoDeviceSourceType == VideoDeviceSourceTypeEnum.Camera);
- layer.RegionInfo = new RegionInfo()
- {
- Width = mergedVideoOutputWidth,
- Height = mergedVideoOutputHeight,
- MainRegion = deskTop == null ? null : new RegionModel()
- {
- Width = deskTop.OutputWidth,
- Height=deskTop.OutputHeight,
- Position=PositionEnum.Center
- },
- SideRegionOne=camera==null?null:new RegionModel {
- Width = camera.OutputWidth,
- Height = camera.OutputHeight,
- Position = PositionEnum.TopRight
- }
- };
- return layer;
- }
- }
- }
|