我正在使用 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 流式传输(就像流式传输已完成但出现未知错误并且无法播放音频)。
我知道这是一个容易理解的问题,谢谢。