/// <summary> /// Initializes a new instance of the <see cref="DeserializeAudioMediaBuffer" /> class. /// </summary> /// <param name="serialized">The serialized.</param> public DeserializeAudioMediaBuffer(SerializableAudioMediaBuffer serialized) { this.ActiveSpeakers = serialized.ActiveSpeakers; this.Length = serialized.Length; this.IsSilence = serialized.IsSilence; this.Timestamp = serialized.Timestamp; if (serialized.Buffer != null) { IntPtr mixedBuffer = Marshal.AllocHGlobal(serialized.Buffer.Length); Marshal.Copy(serialized.Buffer, 0, mixedBuffer, serialized.Buffer.Length); this.Data = mixedBuffer; this.Length = serialized.Buffer.Length; } if (serialized.SerializableUnmixedAudioBuffers != null) { this.UnmixedAudioBuffers = new UnmixedAudioBuffer[serialized.SerializableUnmixedAudioBuffers.Length]; var count = 0; foreach (var i in serialized.SerializableUnmixedAudioBuffers) { if (i.Buffer.Length > 0) { IntPtr bufferData = Marshal.AllocHGlobal(i.Buffer.Length); Marshal.Copy(i.Buffer, 0, bufferData, i.Buffer.Length); this.UnmixedAudioBuffers[count].Data(bufferData); this.UnmixedAudioBuffers[count].ActiveSpeakerId(i.ActiveSpeakerId); this.UnmixedAudioBuffers[count].OriginalSenderTimestamp(i.OriginalSenderTimestamp); this.UnmixedAudioBuffers[count].Length(i.Buffer.Length); } count++; } } }
/// <summary> /// Gets the participant. /// </summary> /// <param name="serialized">The serialized.</param> /// <returns>List<IParticipant>.</returns> public List <IParticipant> GetParticipant(SerializableAudioMediaBuffer serialized) { var list = new List <IParticipant>(); if (serialized.SerializableUnmixedAudioBuffers != null) { foreach (var i in serialized.SerializableUnmixedAudioBuffers) { var participant = new Participant(); var info = new ParticipantInfo(); var identity = new IdentitySet(); var user = new Identity(); user.DisplayName = i.DisplayName; user.AdditionalData = i.AdditionalData; user.Id = i.AdId; identity.User = user; info.Identity = identity; participant.Info = info; var media = new Microsoft.Graph.MediaStream() { SourceId = i.ActiveSpeakerId.ToString() }; participant.MediaStreams = new List <Microsoft.Graph.MediaStream>() { media }; participant.IsInLobby = false; list.Add(new ParticipantExtension(participant)); } } return(list); }
/// <summary> /// Saves the audio media buffer. /// </summary> /// <param name="data">The data.</param> private async Task _saveAudioMediaBuffer(SerializableAudioMediaBuffer data) { await saveBsonFile(data, data.Timestamp.ToString()); }