Beispiel #1
0
    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;
    }
Beispiel #2
0
    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);
    }