Audiosource.GetOutputData () не работает в сборке Unity WebGL

public Text data;
string url = "http://localhost/AudioVisualizer/Spiderman.wav";
float[] samples = new float[1024];
public AudioSource source;
public GameObject L,R;
WWW www;
 IEnumerator Start()
{
    www = new WWW(url);
    yield return www;
    source = GetComponent<AudioSource>();
    source.clip = www.GetAudioClip();
}
void Update()
{
    source.GetOutputData(samples, 1);
    data.text = samples[0].ToString();

    L.transform.localScale = new Vector3(1,Mathf.Abs(samples[0]*2), 1);
    R.transform.localScale = new Vector3(1, Mathf.Abs(samples[1]*2), 1);

    if (!source.isPlaying)
        source.Play();
}

Когда я запускаю приведенный выше код в редакторе, он работает нормально. Но когда я беру сборку WebGL, выходных данных нет.

data.text = samples[0].ToString();

эта строка дает 0 в качестве вывода.


person Akash Gajbhiye    schedule 16.12.2017    source источник
comment
нет, это не сработало   -  person Akash Gajbhiye    schedule 16.12.2017


Ответы (1)


Согласно doc, GetOutputData не < / strong> поддерживается для WebGL. Это связано с тем, что WebGL не поддерживает потоки, и из-за этого многие другие звуковые функции не поддерживаются. Поддерживаются только базовые аудиофункции.

Вам придется вручную обработать AudioClip. Я предлагаю вам проверить этот проект, который GetSpectrumData реализует WebGL. Это поможет вам реализовать GetOutputData для WebGL.

person Programmer    schedule 16.12.2017