У меня есть сопрограмма, которая загружает видео, записывает его в память, а затем воспроизводит его.
IEnumerator DownloadVideo(string url) {
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.SendWebRequest();
byte[] result = www.downloadHandler.data;
File.WriteAllBytes(path, result);
StartCoroutine(PlayVideo(path, 3));
}
IEnumerator PlayVideo(string url, float delayTime = 0) {
yield return new WaitForSeconds(delayTime);
player.url = url;
player.Prepare();
while (!player.isPrepared) yield return null;
player.Play();
}
Проблема в том, что мне нужно установить этот аргумент delayTime
в PlayVideo
сопрограмма, потому что File.WriteAllBytes(path, result)
требуется некоторое время, чтобы закончить, и если я сразу начну воспроизводить видео, оно не будет воспроизводиться правильно.
Вопрос прост: в сопрограмме DownloadVideo
, как я могу ждать, покаFile.WriteAllBytes(path, result)
закончить, чтобы позвонить StartCoroutine(PlayVideo(path))
?