я пытаюсь получить загружаемый файл из API без возврата реального пути к файлу, например, как www.domain.com/api/get-audio?name=foo.mp3, при открытии в браузере файл будет автоматически загружен, но кажется, что в Unity должна быть какая-то функция, чтобы иметь возможность скачать файл что-то вроде:
IEnumerator GetTheFoo(string path)
{
using (UnityWebRequest www = UnityWebRequest.Get(path))
{
www.SendWebRequest();
while (www.downloadProgress < 0.01)
{
Debug.Log(www.downloadProgress);
yield return new WaitForSeconds(.1f);
}
if (www.isNetworkError)
{
Debug.Log("error");
}
else
{
Debug.Log(Application.persistentDataPath);
string savePath = string.Format("{0}/{1}.mp3", Application.persistentDataPath, "foo");
System.IO.File.WriteAllText(savePath, www.downloadHandler.text);
}
}
}
я получил файл, но после того, как я проверил файл, он возвращает неправильный размер и, возможно, не звуковой файл, потому что я не могу его воспроизвести, я глубоко ищу в Google лучший способ загрузки файла, и я вижу, что все примеры и решения приведены со ссылкой на файл реального пути, такой как file/audio/foo.mp4, так что возможно или нет получить загружаемый файл из API или ссылку, которая не содержит реального пути?
[ОБНОВЛЕНИЕ]
100% - это моя вина, извините за недостаток знаний, я не знаю, изменит ли время результат, поэтому просто измените yield return с некоторой правильной логикой или просто замените их только
yield return www.SendWebRequest();
while (www.downloadProgress < 0.01)
Итак, вы ждете, пока загрузка не достигнет 1%? - person Cid   schedule 22.06.2020yield return
исправление, которое - person good112233   schedule 22.06.2020