1

我正在使用 WWW Unity 类从 S3 Bucket 获取歌曲。

问题是,当我加载一首歌曲时,流媒体效果很好,我得到了足够大的缓冲区,并且能够使用 AudioSource Clip 轻松播放歌曲。

当我尝试调用函数 twich 时问题就开始了,witch 实际上的意思是,我需要同时下载两首歌曲。让我注意到,如果我尝试保留第二个函数,我仍然会收到一个错误(该错误是一个“红色”错误,但没有任何关于该错误的数据)。

功能:

 private IEnumerator startSongStreaming(int playerIndex,User user)
    {
        string url = user.getCurrentGamePerformacePath ();
        WWW www = new WWW (url);
        AudioSource audioSource = GameObject.FindGameObjectsWithTag ("PlayerResultsAudio")[playerIndex].GetComponent<AudioSource>();
        AudioClip myAudioClip = audioSource.clip;
        Debug.Log (playerIndex +  " :" +  www.progress);
        while (www.progress < .1f) {
            Debug.Log ("Streaming WWW PLAYER INDEX: " + playerIndex + " " + www.progress);
            yield return null;
        }
        myAudioClip = www.audioClip;
        Debug.Log (playerIndex +  " CHECKTHIS:" +  www.progress);
        while (!(myAudioClip.isReadyToPlay)) {
            Debug.Log ("IS READY TO PLAY PLAYER INDEX: " + playerIndex + " " + www.progress);
            yield return null;
        }
        //Debug.Log ("TESTME: " + myAudioClip.isReadyToPlay);
        audioSource.clip = www.GetAudioClip(false, true, AudioType.WAV);
        Button listen = GameObject.FindGameObjectsWithTag ("PlayerResultsListenBtn") [playerIndex].GetComponent<Button> ();
        listen.interactable = true;
    }

我对预制件和获取游戏对象没有任何问题,它与调用该函数的函数配合得很好。

无论如何,debug.logs 会为其中一个索引返回一个良好的流式传输,并在另一个上将流式传输设置为 1(就像它已经完成,但它从未真正开始)。所以我得到 0 和流式传输(对象将工作和播放)和 1 和 1 流式传输(就像流式传输已完成但出现未知错误并且无法播放音频)。

我知道这是一个容易理解的问题,谢谢。

4

1 回答 1

0

好的,我们购买了 Unity3d Pro 版本,问题已经解决,没有代码错误或更改,简单有效:)。

因此,如果有人解决此类问题,请联系 Unity3d 支持。

于 2016-01-19T08:30:20.427 回答