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

时间:2017-12-16 06:33:58

标签: c# unity3d 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作为输出。

1 个答案:

答案 0 :(得分:1)

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

您必须自己手动处理AudioClip。我建议你检查一下this项目是否为{4}}实施WebGL。这将有助于您为WebGL实现GetOutputData