S3 Bucket から曲を取得するために WWW Unity クラスを使用しています。
問題は、1 つの曲を読み込んでいるときに、ストリーミングがうまく機能し、十分な大きさのバッファが得られ、AudioSource Clip で曲を簡単に再生できることです。
関数 twich を呼び出そうとすると問題が発生します。これは、実際には 2 つの曲を同時にダウンロードする必要があることを意味します。2 番目の関数を保持しようとすると、エラーが発生することに注意してください (エラーは「赤」のエラーですが、エラーに関するデータはありません)。
関数:
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 つで適切なストリーミングを返し、もう一方のインデックスでストリーミングを 1 に設定します (終了したように、実際には開始されませんでした)。そのため、0 とストリーミング (オブジェクトは動作して再生されます) と 1 と 1 のストリーミング (ストリーミングは完了しましたが、不明なエラーが発生し、オーディオを再生できません) を取得します。
質問を理解するのが難しいことはわかっています。よろしくお願いします。