void OnAudioConfig(string config) { if (_audioCreated) { return; } Output.Clear(); //XmlReader reader = XmlReader.Create (new StringReader (config)); XmlDocument d = new XmlDocument(); d.Load(new StringReader(config)); int.TryParse(d.DocumentElement.GetAttribute("StreamsCount"), out _audioSourceCount); if (d.DocumentElement.GetAttribute("SpatialAudio") == "1" || d.DocumentElement.GetAttribute("SpatialAudio") == "True") { _isSpatialAudio = true; } else { _isSpatialAudio = false; } Output.SupportSpatialAudio = _isSpatialAudio; int channel = 0; XmlNodeList elems = d.DocumentElement.GetElementsByTagName("Pos"); foreach (XmlNode e in elems) { Vector3 v = new Vector3(); string[] comps = e.Attributes.GetNamedItem("Val").Value.Split(",".ToCharArray()); v.x = float.Parse(comps [0]); v.y = float.Parse(comps [1]); v.z = float.Parse(comps [2]); var c = Output.GetChannel(channel, true); c.AudioLocation = v; } _configReceived = true; }
public void ReadAudio(int channel, float[] data, int channels) { if (_output == null) { return; } var c = _output.GetChannel(channel, false); if (c == null) { return; } c.ReadAudio(data, channels, true); }