private void OnRecorded(object sender, RecordedEventArgs e) { if (!ClientModel.IsInited) { return; } byte[] data = new byte[e.DataSize]; Buffer.BlockCopy(e.Data, 0, data, 0, data.Length); ClientPlayVoiceCommand.MessageContent content = new ClientPlayVoiceCommand.MessageContent { Pack = new SoundPack { Data = data, Channels = e.Channels, BitPerChannel = e.BitPerChannel, Frequency = e.Frequency }, Number = Interlocked.Increment(ref lastSendedNumber) }; using (var client = ClientModel.Get()) { List <string> receivers = client.Rooms.Values .OfType <VoiceRoom>() .SelectMany(r => r.Users) .Distinct() .ToList(); receivers.Remove(client.User.Nick); ClientModel.Peer.SendMessageIfConnected(receivers, ClientPlayVoiceCommand.Id, content, true); } }
private void OnRecorded(object sender, RecordedEventArgs e) { if (!ClientModel.IsInited) { return; } var data = new byte[e.DataSize]; Buffer.BlockCopy(e.Data, 0, data, 0, data.Length); var content = new ClientPlayVoiceCommand.MessageContent { Pack = new SoundPack { Data = data, Channels = e.Channels, BitPerChannel = e.BitPerChannel, Frequency = e.Frequency }, Number = Interlocked.Increment(ref lastSendedNumber) }; string userNick; using (var client = ClientModel.Get()) userNick = client.User.Nick; lock (interlocutors) { foreach (var kvp in interlocutors) { var nick = kvp.Key; var count = kvp.Value; if (count <= 0) { continue; } if (nick.Equals(userNick)) { continue; } ClientModel.Peer.SendMessageIfConnected(nick, ClientPlayVoiceCommand.CommandId, content, true); } } }
private void OnRecorded(object sender, RecordedEventArgs e) { if (!ClientModel.IsInited) { return; } var data = new byte[e.DataSize]; Buffer.BlockCopy(e.Data, 0, data, 0, data.Length); var content = new ClientPlayVoiceCommand.MessageContent { Pack = new SoundPack { Data = data, Channels = e.Channels, BitPerChannel = e.BitPerChannel, Frequency = e.Frequency }, Number = Interlocked.Increment(ref _lastSendedNumber) }; using (var client = ClientModel.Get()) { var userId = client.Chat.User.Id; foreach (var user in client.Chat.GetUsers()) { if (!user.IsVoiceActive()) { continue; } if (user.Id == userId) { continue; } ClientModel.Peer.SendMessageIfConnected(user.Id, ClientPlayVoiceCommand.CommandId, content, true); } } }
private void OnRecorded(object sender, RecordedEventArgs e) { if (!ClientModel.IsInited) return; var data = new byte[e.DataSize]; Buffer.BlockCopy(e.Data, 0, data, 0, data.Length); var content = new ClientPlayVoiceCommand.MessageContent { Pack = new SoundPack { Data = data, Channels = e.Channels, BitPerChannel = e.BitPerChannel, Frequency = e.Frequency }, Number = Interlocked.Increment(ref lastSendedNumber) }; using (var client = ClientModel.Get()) { var receivers = client.Rooms.Values .OfType<VoiceRoom>() .SelectMany(r => r.Users) .Distinct() .ToList(); receivers.Remove(client.User.Nick); ClientModel.Peer.SendMessageIfConnected(receivers, ClientPlayVoiceCommand.CommandId, content, true); } }