Audiosource.GetOutputData()在Unity WebGL构建中不起作用

问题描述 投票:1回答:1
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作为输出。

c# unity3d unity-webgl
1个回答
1
投票

根据doc,WebGL不支持GetOutputData。这是因为WebGL不支持线程。由于这个原因,还有许多其他没有支持的音频功能。仅支持基本音频功能。

您必须自己手动处理AudioClip。我建议你查看this项目,这是针对WebGL的GetSpectrumData实现。这将有助于您为WebGL实现GetOutputData

© www.soinside.com 2019 - 2024. All rights reserved.