首页 > 解决方案 > UnityWebRequest 未完成

问题描述

我正在学习如何从在线资源流式传输音频。我的项目使用 UnityWebRequest 和 UnityWebRequestMultimedia 来获取音频流。我的 Unity 版本是 2020.2.5f1。

我遇到的问题是 Web 请求永远不会完成。它达到了大约 98% 的进度,然后重新启动,我不知道为什么。奇怪的是,这些 URL 可以在我的浏览器中使用,但不能在 Unity 编辑器中使用。这是我的代码:

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using TMPro;

public class RadioManager : MonoBehaviour
{
    public RadioStation[] radioStations = new RadioStation[0];
    public AudioSource source;

    public TextMeshProUGUI connectionStatus;
    public TextMeshProUGUI radioName;

    [System.Serializable]
    public class RadioStation
    {
        public string name;
        public string url;
    }


    private void Start()
    {
        StartCoroutine(DownloadAndPlay(radioStations[1]));
    }

    IEnumerator DownloadAndPlay(RadioStation radioStation)
    {
        radioName.text = radioStation.name;

        using (UnityWebRequest radioRequest = UnityWebRequestMultimedia.GetAudioClip(radioStation.url, AudioType.MPEG))
        {

            UnityWebRequestAsyncOperation _op = radioRequest.SendWebRequest();

            while(_op.progress < 1F)
            {
                Debug.Log($"Pending Request... {_op.progress}%");
                yield return new WaitForSeconds(0.25F);
            }

            if (radioRequest.result == UnityWebRequest.Result.ConnectionError)
            {
                connectionStatus.text = "Error Connecting!";
            }
            else if (radioRequest.result == UnityWebRequest.Result.InProgress)
            {
                connectionStatus.text = "Connecting...";
            }
            else
            {
                source.clip = DownloadHandlerAudioClip.GetContent(radioRequest);
                connectionStatus.text = "Connected!";
            }
        }
    }
}

还有我的场景的图像。你可以看到它是如何设置的: 图片

标签: unity3d

解决方案


推荐阅读