private void ClearQueue() { var dic = Hot.GetWavDictionary(DicName); foreach (var /*<audioName,queue>*/ kv in dic) { var queue = kv.Value; lock (queue) { queue.Clear(); } } }
private void SaveWave() { var dic = Hot.GetWavDictionary(DicName); foreach (var /*<audioName,queue>*/ kv in dic) { var items = new List <(byte[] Buffer, int Length, DateTime TimeGenerated)>(); var queue = kv.Value; lock (queue) { while (queue.Count > 0) { items.Add(queue.Dequeue()); } } if (items.Count > 0) { var i0 = items[0]; if (Writers.TryGetValue(kv.Key, out var writer) == false) { writer = Writers.GetValueOrDefault(kv.Key, true, audioName => makeWriter(audioName, i0.TimeGenerated)); if (writer != null) { isPrePlaying = true; } else { Writers.Remove(kv.Key); } } foreach (var item in items) { writer?.Write(item.Buffer, 0, item.Length); } } } }