public UserAudioPlayer(Guid userID, AudioOutWPF parent, bool useWaveEvent = true) { if (!DesignerProperties.GetIsInDesignMode(this)) { new CompositionContainer(new AssemblyCatalog(Assembly.GetExecutingAssembly())).ComposeParts(this); } Parent = parent; this.UserID = userID; UseWaveEvent = useWaveEvent; User = UserStatusRepo.FindUser(userID); UserStatusRepo.Users.CollectionChanged += Users_CollectionChanged; aggregator = new FeenPhone.Audio.SampleAggregator() { PerformFFT = false }; aggregator.NotificationCount = 882; aggregator.PerformFFT = true; VisSource = new AudioVisualizationSource(aggregator); LastReceived = DateTime.UtcNow; }
private IWavePlayer GetWavePlayer() { int desiredLatency = Math.Max(MinBufferedDurationMs, Math.Min((int)MaxBufferedDuration.TotalMilliseconds, BufferTarget)); var SelectedOutput = Parent.SelectedOutput; Console.WriteLine("Initializing Output for {0} using {1}{2} with latency of {3}ms", User == null ? "<new user>" : User.Nickname ?? User.ID.ToString(), SelectedOutput.Provider, SelectedOutput.Provider == DeviceProvider.Wave && UseWaveEvent ? "Event" : "", desiredLatency); return(AudioOutWPF.InstanciateWavePlayerForOutput(SelectedOutput, desiredLatency, shareMode, UseWaveEvent)); }